3

次のことを実現したいと思います。PDF ファイルのセットがあります。まず、座標系の原点を確認したいと思います。PDFの座標系の原点が左上でない場合[通常原点は左下]、左上の座標で結果のPDFを作成したいと思います。PDFBox [コードスニペットは以下]を使用してこれを実行しようとしていますが、結果のPDFが空白になります。私は PDFBox を初めて使用するので、この点に関するヘルプは大歓迎です。

        // 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();  
4

1 に答える 1

2

空の、変換されたコンテンツ ストリームを作成しています。

を介して既存のコンテンツを取得しpage.getContents()、それを変換にラップする必要があります。何かのようなもの:

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

PS:saveGraphicsState()対応する への呼び出しなしのへの呼び出しrestoreGraphicsState()はノーノ​​ーです。

ああ、「magicFunction...」が呼び出されているようappendRawCommands()です。

于 2011-02-03T00:07:02.130 に答える