소스 검색

found bug

wes 4 년 전
부모
커밋
4767f2f95d
1개의 변경된 파일117개의 추가작업 그리고 90개의 파일을 삭제
  1. 117 90
      pdfHummusTest1.cpp

+ 117 - 90
pdfHummusTest1.cpp

@@ -16,96 +16,123 @@
 #include "PageContentContext.h"
 #include "PDFFormXObject.h"
 #include "Trace.h"
-
+#include <windows.h>
+#include <winnt.h>
 int main(){
-    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");
+    //  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); }
+        }
+        */
     }
-    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
-			PDFPage* pdfPage2 = new PDFPage();
-			pdfPage->SetMediaBox(PDFRectangle(0,0,595,842));
-			// Create a content context for the page
-			PageContentContext* pageContentContext2 = pdfWriterB.StartPageContentContext(pdfPage2);
-			PDFUsedFont* arialTTF2 = pdfWriterB.GetFontForFile("C:\\Windows\\Fonts\\arial.ttf");
-			pageContentContext2->k(0,0,0,1);
-			pageContentContext2->BT();
-			pageContentContext2->Tf(arialTTF2,1);
-			pageContentContext2->Tm(20,0,0,20,40,822);
-			pageContentContext2->Tj("Hello Again, World");
-			pageContentContext2->ET();				
-			// End content context, and write the page
-			pdfWriterB.EndPageContentContext(pageContentContext2);
-			pdfWriterB.WritePageAndRelease(pdfPage2);
-			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
+    PDFPage* pdfPage2 = new PDFPage();
+    pdfPage2->SetMediaBox(PDFRectangle(0,0,595,842));
+    // Create a content context for the page
+    PageContentContext* pageContentContext2 = pdfWriterB.StartPageContentContext(pdfPage2);
+    PDFUsedFont* arialTTF2 = pdfWriterB.GetFontForFile("C:\\Windows\\Fonts\\arial.ttf");
+    pageContentContext2->k(0,0,0,1);
+    pageContentContext2->BT();
+    pageContentContext2->Tf(arialTTF2,1);
+    pageContentContext2->Tm(20,0,0,20,40,822);
+    pageContentContext2->Tj("Hello Again, World");
+    pageContentContext2->ET();				
+    // End content context, and write the page
+    pdfWriterB.EndPageContentContext(pageContentContext2);
+    pdfWriterB.WritePageAndRelease(pdfPage2);
+    pdfWriterB.EndPDF();
 }