2016-10-07 16 views
0

私は8.5インチx 11インチのPDFを持っています。私はページの上半分を取ってカットし、新しいPDFの1ページに挿入したいと思います。次に、ページの下半分を取り出してPDFのページ2に挿入します。PDFの上半分をコピーして新しいPDFに挿入するには

私は基本的にPDFページを半分に分割しようとしています...私が見るすべてのドキュメントは、個々のページを別々のファイルに分割することに関連しています。基本的にページの一部をコピーして別のドキュメントに貼りたい

itextsharpを使用して方向を指定する場合は、私はそれを以前に使って、概念を理解しています。しかし、厳しい時を過ごしています。私は矩形を使用し、座標を使用すると確信しています。

答えて

2

タイルをご覧いただいているようです。あなたが使用しようとしているiTextのバージョンを教えているわけではありません。あなたがiText 7を使用していると仮定しています。この場合、iText 7 Jump-Start tutorialChapter 6を参照してください。そこでは、1ページのPDFを4ページのPDFにタイルします。

オリジナルPDF:

enter image description here

タイル張りPDF:

enter image description here

コードのTheGoldenGateBridge_Tilesを参照してください:

PdfDocument pdf = new PdfDocument(new PdfWriter(dest)); 
PdfDocument sourcePdf = new PdfDocument(new PdfReader(src)); 
PdfPage origPage = sourcePdf.getPage(1); 
PdfFormXObject pageCopy = origPage.copyAsFormXObject(pdf); 
Rectangle orig = origPage.getPageSize(); 
//Tile size 
Rectangle tileSize = PageSize.A4.rotate(); 
AffineTransform transformationMatrix = AffineTransform.getScaleInstance(
    tileSize.getWidth()/orig.getWidth() * 2f, 
    tileSize.getHeight()/orig.getHeight() * 2f); 
//The first tile 
PdfPage page = pdf.addNewPage(PageSize.A4.rotate()); 
PdfCanvas canvas = new PdfCanvas(page); 
canvas.concatMatrix(transformationMatrix); 
canvas.addXObject(pageCopy, 0, -orig.getHeight()/2f); 
//The second tile 
page = pdf.addNewPage(PageSize.A4.rotate()); 
canvas = new PdfCanvas(page); 
canvas.concatMatrix(transformationMatrix); 
canvas.addXObject(pageCopy, -orig.getWidth()/2f, -orig.getHeight()/2f); 
//The third tile 
page = pdf.addNewPage(PageSize.A4.rotate()); 
canvas = new PdfCanvas(page); 
canvas.concatMatrix(transformationMatrix); 
canvas.addXObject(pageCopy, 0, 0); 
//The fourth tile 
page = pdf.addNewPage(PageSize.A4.rotate()); 
canvas = new PdfCanvas(page); 
canvas.concatMatrix(transformationMatrix); 
canvas.addXObject(pageCopy, -orig.getWidth()/2f, 0); 
// closing the documents 
pdf.close(); 
sourcePdf.close(); 

コード股関節にこの例を変更します1ページのPDFを2ページのPDFに並べ替えることは、単純な数学を使うことの問題です。

あなたがiText 5を使用している場合、その質問は何度か前に既に回答されていました。例えば参照:

関連する問題