• Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
    Dedicated community for Japanese speakers
  • 한국 커뮤니티
    Dedicated community for Korean speakers
Exit
0

Writing a Script in Extendscript

New Here ,
Jun 30, 2022 Jun 30, 2022

Copy link to clipboard

Copied

I am trying to write a script in Extendscript that will allow us to import a multi-page PDF into the FrameMaker document using the script instead of inserting one page at a time.


We are currently using FrameScript to do this, but I know that FrameScript is going away at some point and we will eventually need to convert to Extendscript. So I am trying to stay ahead of the curve.

 

Does anyone already have a script that they use that does this? Or any tips for how to begin to create this script?

 

Thanks for your help!

Views

133

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Mentor ,
Jul 05, 2022 Jul 05, 2022

Copy link to clipboard

Copied

Hi, I have a series of samples for the beginner here:

 

http://www.weststreetconsulting.com/WSC_ExtendScriptSamples.htm

 

There is no example that does specifically what you are asking for, but maybe there is something there that can help you understand scripting in general. Hope this helps.

Russ

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Explorer ,
Jul 30, 2023 Jul 30, 2023

Copy link to clipboard

Copied

LATEST

Hi, jenniferb13892332

Try running the sample code below with the document open.
Note that PDF scaling is determined dynamically by FrameMaker.

(function (){
	var pdfFile = File.openDialog ("Select pdf file", "*.pdf", false);
	if (!pdfFile) return;

	var doc = app.ActiveDoc;
	if (!doc.ObjectValid()) return;

	var numOfPages = prompt ("Enter number of pages in pdf", 1);
	numOfPages = parseInt (numOfPages, 10);
	if (isNaN (numOfPages)||numOfPages==0) return;

	var textItems, textItem, textloc, imgFrame, insetObj;

	for (var i=0;i<numOfPages;i++){
		// Create an anchor frame at the end of the last line
		textItems = doc.MainFlowInDoc.GetText(Constants.FTI_PgfEnd);
		textItem = textItems[textItems.length - 1];
		textloc = new TextLoc (textItem.obj, textItem.offset);
		imgFrame = doc.NewAnchoredAFrame (textloc);
		imgFrame.AnchorType = Constants.FV_ANCHOR_BELOW;
		imgFrame.Alignment = Constants.FV_ALIGN_CENTER;
		imgFrame.AFrameIsFloating = false;

		// Create an inset object inside the anchor frame and place the PDF
		insetObj = doc.NewGraphicObject (Constants.FO_Inset, imgFrame); 
		insetObj.InsetFile = pdfFile.fsName;
		insetObj.PageNum = i; // PDF page number, beginning with 0
		insetObj.Pen = 15;

		// Match the size of the anchor frame to the size of the PDF
		imgFrame.Width = insetObj.Width;
		imgFrame.Height = insetObj.Height;
	}
})();

 

 

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines