|
@@ -21,102 +21,78 @@
|
|
|
int main(){
|
|
|
// Go to: "%AppData%\..\Local\VirtualStore" - because Windows does not write to the C:\ drive
|
|
|
printf("if running on Windows check here for file(s): %%AppData%%\\..\\Local\\VirtualStore\n");
|
|
|
- {
|
|
|
- PDFWriter pdfWriter;
|
|
|
- // PREPARE PDF DOCUMENT
|
|
|
- // ********************
|
|
|
- // get a PDFWriter object to interact with. set the PDF version, set log file
|
|
|
- EStatusCode e = pdfWriter.StartPDF("c:\\myFile.pdf",ePDFVersion13,LogConfiguration(true,true,".\\logMe"));
|
|
|
- if (e){
|
|
|
- /* 25APR20 - look through codebase and found these three reasons for nonrecoverable failure:
|
|
|
- * - user requested encryption, document doesn't support it
|
|
|
- * - it is unlikely, but for some reason GK wanted to call OutputFile::CloseFile(), it failed
|
|
|
- * - operating system was unsuccessful at giving a lock for the filename *
|
|
|
- *
|
|
|
- * * Windows 'gives' a lock, but doesn't protect others from writing to this filename
|
|
|
- */
|
|
|
- printf("Terminating (c:\\myFile.pdf): unsuccessful lock or couldn't close existing or requested encryption but not supported\n");
|
|
|
- TRACE_LOG("Terminating (c:\\myFile.pdf): unsuccessful lock or couldn't close existing or requested encryption but not supported");
|
|
|
- exit(1);
|
|
|
- }
|
|
|
- TRACE_LOG("Notified OS we might use c:\\myFile.pdf");
|
|
|
- PDFPage* pdfPage = new PDFPage();
|
|
|
- // set dimensions for an A4 sized page
|
|
|
- pdfPage->SetMediaBox(PDFRectangle(0,0,595,842));
|
|
|
- PageContentContext* pageContentContext = pdfWriter.StartPageContentContext(pdfPage);
|
|
|
- // include font file
|
|
|
- PDFUsedFont* arialTTF = pdfWriter.GetFontForFile("C:\\Windows\\Fonts\\arial.ttf");
|
|
|
- // include image file
|
|
|
-
|
|
|
- // ADD CONTENT
|
|
|
- // ********************
|
|
|
-
|
|
|
- // set font color to black
|
|
|
- pageContentContext->k(0,0,0,1);
|
|
|
- // set text object
|
|
|
- pageContentContext->BT();
|
|
|
- // set font
|
|
|
- pageContentContext->Tf(arialTTF,1);
|
|
|
- // set position of text
|
|
|
- pageContentContext->Tm(20,0,0,20,40,822);
|
|
|
- // insert text into PDF
|
|
|
- pageContentContext->Tj("Text placed and scaled with Tm");
|
|
|
- // end of text
|
|
|
- pageContentContext->ET();
|
|
|
- pdfWriter.EndPageContentContext(pageContentContext);
|
|
|
- pdfWriter.WritePageAndRelease(pdfPage);
|
|
|
- // ****************Shutdown Usage************
|
|
|
- // ******************************************
|
|
|
- // ******************************************
|
|
|
- pdfWriter.Shutdown("c:\\myFile.pdf.shutdown");
|
|
|
- /*PDFWriter pdfWriterB;
|
|
|
- pdfWriterB.ContinuePDF("c:\\myFile.pdf","myFile.pdf.shutdown","",LogConfiguration(true,true,".\\logMe"));
|
|
|
- PDFPage* pdfPageB = new PDFPage();
|
|
|
- // set dimensions for an A4 sized page
|
|
|
- pdfPageB->SetMediaBox(PDFRectangle(0,0,595,842));
|
|
|
- PageContentContext* pageContentContextB = pdfWriterB.StartPageContentContext(pdfPageB);
|
|
|
- PDFFormXObject* image = pdfWriterB.CreateFormXObjectFromJPGFile("C:\\Users\\bad-p\\Desktop\\Work Folder\\VS CODE\\SanAntonioPass.jpg");
|
|
|
- if (!image){
|
|
|
- TRACE_LOG("Image file not found, creating PDF without image.");
|
|
|
- printf("The image \"C:\\Users\\bad-p\\Desktop\\Work Folder\\VS CODE\\SanAntonioPass.jpg\" was not found.");
|
|
|
- }
|
|
|
- pageContentContextB->q();
|
|
|
- pageContentContextB->cm(0.4,0,0,0.4,57.5,241);
|
|
|
- pageContentContextB->Do(pdfPageB->GetResourcesDictionary().AddFormXObjectMapping(image->GetObjectID()));
|
|
|
- pageContentContextB->Q();
|
|
|
- delete image;
|
|
|
- // END PAGE, WRITE PDF.
|
|
|
- // ********************
|
|
|
- pdfWriterB.EndPageContentContext(pageContentContextB);
|
|
|
- EStatusCode f = pdfWriterB.WritePageAndRelease(pdfPageB);
|
|
|
- if (f){
|
|
|
- printf ("something interesting");
|
|
|
- }
|
|
|
- pdfWriterB.EndPDF();*/
|
|
|
- if(false)for(int i = 0;0<1000000000;i++){
|
|
|
- if(i*i*i<(i/3))
|
|
|
- break;
|
|
|
- }
|
|
|
- /*
|
|
|
- LPOVERLAPPED kyle;
|
|
|
- // waiting for previous wfsopen to finish from GK lib
|
|
|
- while(true){
|
|
|
- // open file
|
|
|
- FILE *f = fopen("C:\\Users\\bad-p\\AppData\\Local\\VirtualStore\\myFile.pdf","r");
|
|
|
- // create lock for file, after lock is created, done waiting.
|
|
|
- if(LockFileEx(
|
|
|
- f, // handle to file (needs to be GENERIC_READ)
|
|
|
- LOCKFILE_EXCLUSIVE_LOCK, // force an exclussive lock vs. a shared lock
|
|
|
- 0, // must be set to 0 (dwReservered)
|
|
|
- 0, // The low-order 32 bits of the length of the byte range to lock
|
|
|
- MAXDWORD, // The high-order 32 bits of the length of the byte range to lock. | MAXDWORD = 0xffffffff
|
|
|
- kyle //
|
|
|
- )) { fclose(f); break; }
|
|
|
- // check for file every 6th of a second
|
|
|
- else { fclose(f); Sleep(650); }
|
|
|
- }
|
|
|
+ PDFWriter pdfWriter;
|
|
|
+ // PREPARE PDF DOCUMENT
|
|
|
+ // ********************
|
|
|
+ // get a PDFWriter object to interact with. set the PDF version, set log file
|
|
|
+ EStatusCode e = pdfWriter.StartPDF("c:\\myFile.pdf",ePDFVersion13,LogConfiguration(true,true,".\\logMe"));
|
|
|
+ if (e){
|
|
|
+ /* 25APR20 - look through codebase and found these three reasons for nonrecoverable failure:
|
|
|
+ * - user requested encryption, document doesn't support it
|
|
|
+ * - it is unlikely, but for some reason GK wanted to call OutputFile::CloseFile(), it failed
|
|
|
+ * - operating system was unsuccessful at giving a lock for the filename *
|
|
|
+ *
|
|
|
+ * * Windows 'gives' a lock, but doesn't protect others from writing to this filename
|
|
|
*/
|
|
|
+ printf("Terminating (c:\\myFile.pdf): unsuccessful lock or couldn't close existing or requested encryption but not supported\n");
|
|
|
+ TRACE_LOG("Terminating (c:\\myFile.pdf): unsuccessful lock or couldn't close existing or requested encryption but not supported");
|
|
|
+ exit(1);
|
|
|
}
|
|
|
+ TRACE_LOG("Notified OS we might use c:\\myFile.pdf");
|
|
|
+ PDFPage* pdfPage = new PDFPage();
|
|
|
+ // set dimensions for an A4 sized page
|
|
|
+ pdfPage->SetMediaBox(PDFRectangle(0,0,595,842));
|
|
|
+ PageContentContext* pageContentContext = pdfWriter.StartPageContentContext(pdfPage);
|
|
|
+ // include font file
|
|
|
+ PDFUsedFont* arialTTF = pdfWriter.GetFontForFile("C:\\Windows\\Fonts\\arial.ttf");
|
|
|
+ // include image file
|
|
|
+
|
|
|
+ // ADD CONTENT
|
|
|
+ // ********************
|
|
|
+
|
|
|
+ // set font color to black
|
|
|
+ pageContentContext->k(0,0,0,1);
|
|
|
+ // set text object
|
|
|
+ pageContentContext->BT();
|
|
|
+ // set font
|
|
|
+ pageContentContext->Tf(arialTTF,1);
|
|
|
+ // set position of text
|
|
|
+ pageContentContext->Tm(20,0,0,20,40,822);
|
|
|
+ // insert text into PDF
|
|
|
+ pageContentContext->Tj("Text placed and scaled with Tm");
|
|
|
+ // end of text
|
|
|
+ pageContentContext->ET();
|
|
|
+ pdfWriter.EndPageContentContext(pageContentContext);
|
|
|
+ pdfWriter.WritePageAndRelease(pdfPage);
|
|
|
+ // ****************Shutdown Usage************
|
|
|
+ // ******************************************
|
|
|
+ // ******************************************
|
|
|
+ pdfWriter.Shutdown("c:\\myFile.pdf.shutdown");
|
|
|
+ /*PDFWriter pdfWriterB;
|
|
|
+ pdfWriterB.ContinuePDF("c:\\myFile.pdf","myFile.pdf.shutdown","",LogConfiguration(true,true,".\\logMe"));
|
|
|
+ PDFPage* pdfPageB = new PDFPage();
|
|
|
+ // set dimensions for an A4 sized page
|
|
|
+ pdfPageB->SetMediaBox(PDFRectangle(0,0,595,842));
|
|
|
+ PageContentContext* pageContentContextB = pdfWriterB.StartPageContentContext(pdfPageB);
|
|
|
+ PDFFormXObject* image = pdfWriterB.CreateFormXObjectFromJPGFile("C:\\Users\\bad-p\\Desktop\\Work Folder\\VS CODE\\SanAntonioPass.jpg");
|
|
|
+ if (!image){
|
|
|
+ TRACE_LOG("Image file not found, creating PDF without image.");
|
|
|
+ printf("The image \"C:\\Users\\bad-p\\Desktop\\Work Folder\\VS CODE\\SanAntonioPass.jpg\" was not found.");
|
|
|
+ }
|
|
|
+ pageContentContextB->q();
|
|
|
+ pageContentContextB->cm(0.4,0,0,0.4,57.5,241);
|
|
|
+ pageContentContextB->Do(pdfPageB->GetResourcesDictionary().AddFormXObjectMapping(image->GetObjectID()));
|
|
|
+ pageContentContextB->Q();
|
|
|
+ delete image;
|
|
|
+ // END PAGE, WRITE PDF.
|
|
|
+ // ********************
|
|
|
+ pdfWriterB.EndPageContentContext(pageContentContextB);
|
|
|
+ EStatusCode f = pdfWriterB.WritePageAndRelease(pdfPageB);
|
|
|
+ if (f){
|
|
|
+ printf ("something interesting");
|
|
|
+ }
|
|
|
+ pdfWriterB.EndPDF();*/
|
|
|
+
|
|
|
PDFWriter pdfWriterB;
|
|
|
pdfWriterB.ContinuePDF("C:\\Users\\bad-p\\AppData\\Local\\VirtualStore\\myFile.pdf","C:\\Users\\bad-p\\AppData\\Local\\VirtualStore\\myFile.pdf.shutdown");
|
|
|
// Create a new page
|