2011-02-02 2 views
3

Je voudrais accomplir la chose suivante. J'ai un ensemble de fichiers PDF, d'abord je voudrais vérifier l'origine du système de coordonnées. Si l'origine du système de coordonnées pour le pdf n'est pas en haut à gauche [habituellement l'origine est en bas à gauche], je voudrais créer un PDF résultant avec des coordonnées en haut à gauche. J'essaie de le faire en utilisant PDFBox [l'extrait de code est ci-dessous], mais le PDF résultant est vide, ce que je fais mal. Je suis nouveau à PDFBox, donc toute aide à cet égard est grandement appréciée.PDFBox - Système de coordonnées

 // loading the existing doc    
     PDDocument doc = PDDocument.load("C:\\Users\\test\\workspace\\example1.pdf"); 
     List allPages = doc.getDocumentCatalog().getAllPages(); 
     PDPageContentStream contentStream = null; 

     for(int i=0; i<allPages.size(); i++) 
     { 
      PDPage page = (PDPage)allPages.get(i); 
      contentStream = new PDPageContentStream(doc, page); 
      contentStream.concatenate2CTM(1f, 0f, 0f, -1f, 0f, page.findMediaBox().getHeight()); 
      contentStream.saveGraphicsState(); 
      contentStream.close(); 

     } 
     doc.save("C:\\Users\\test\\workspace\\example2.pdf"); 
     doc.close(); 
+0

Qu'est-ce que cette question a à voir avec iText? –

+0

si quelqu'un peut suggérer une solution en utilisant itext son amende .. –

Répondre

2

Vous créez un flux de contenu vide et transformé.

Vous devez obtenir le contenu existant via page.getContents() et l'inclure dans votre transformation. Quelque chose comme:

contentStream.conactenate2CTM(...); 
contentStream.magicFunctionThatSucksUpTheExistingPageContent(page.getContents()); 
contentStream.close(); 

PS: un appel à saveGraphicsState() sans appel correspondant à restoreGraphicsState() est un non-non.

Oh et on dirait que "magicFunction ..." s'appelle appendRawCommands().

+0

Mark, où peut-on trouver toutes ces informations en plus des javadocs? Vous semblez avoir une compréhension en profondeur de cela. L'avez-vous appris en étudiant la spécification PDF ou y a-t-il une autre ressource qui donne des exemples plus pratiques autres que leurs ressources de "livres de recettes" (pdfbox)? – William

+2

Années de lecture du logiciel de spécification et d'écriture PDF basé sur celui-ci. –

Questions connexes