Hi Friends,
This is the way we can convert word format report into PDF in ax2009
static void dsiple_PDS(Args _args)
{
Args args;
ReportRun rr;
str reportName =
"ReportName";
PurchRFQLine
rfqLineTable;
str myPath;
str pdfFileName;
int i;
COM
wordApplication;
COM wordDocuments;
COM wordDocument;
COM wordRange;
str a[];
str path;
str pdfPath;
str finalPath;
int length;
int minus;
;
i = 1;
myPath =
winApi::getTempPath();
info(myPath);
args = new
Args(reportName);
args.caller(rr);
//rr = new
reportRun(args);
while select rfqLineTable where rfqLineTable.RFQId ==
"00039237_183"
{
// pdfFileName
= myPath + strfmt("test%1.pdf",i);
args.record(rfqLineTable);
rr = new
reportRun(args);
rr.query().interactive(false);
rr.report().interactive(false);
rr.setTarget(printMedium::File);
rr.printJobSettings().setTarget(PrintMedium::File);
rr.printJobSettings().preferredTarget(PrintMedium::File);
rr.printJobSettings().format(PrintFormat::RTF);
// Now Report format is word
rr.printJobSettings().warnIfFileExists(false);
rr.printJobSettings().suppressScalingMessage(true);
pdfFileName =
myPath + strfmt("test%1.doc",i); // reports names are test 1,2…
rr.printJobSettings().fileName(pdfFileName);
a[i] = pdfFileName; // All the Reports are stored
into Array
rr.init();
rr.run();
rr.finalize();
wordApplication = new COM("word.application");
wordDocuments
= wordApplication.Documents();
wordDocument =
wordDocuments.Open(a[i]);//Open all the Reports
length =
strlen(pdfFileName);// Calculate the Length of the file
minus = length
- 3; //removing last 3 digits(DOC)
pdfPath =
strdel(pdfFileName,minus,4);//Delete
from file
finalPath =
pdfPath + ".pdf"; //Adding 3 digits to file path
wordDocument.close();
wordApplication.quit();
WinAPI::deleteFile(pdfFileName);
i++;
}
Happy
Daxing..
Nice post...!
ReplyDelete