itextpdf 버전 5.0.1을 사용하여 지정된 페이지 번호로 페이지를 자릅니다. 가로 방향의 PDF를 자르려고 할 때 문제가 있습니다. 다음 코드를 사용할 때 가로 지향형 PDF는 potrait 지향형 pdf처럼 잘리고 나머지는 누락됩니다. 내가 사용하고있는 코드는 다음과 같습니다iText PDF 방향
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import com.itextpdf.text.Document;
import com.itextpdf.text.pdf.PdfContentByte;
import com.itextpdf.text.pdf.PdfImportedPage;
import com.itextpdf.text.pdf.PdfReader;
import com.itextpdf.text.pdf.PdfWriter;
public class PDFSplitExample {
static void splitPdfFile(InputStream inputPdf,
OutputStream outputStream, int startPage,
int endPage) throws Exception{
//Create document and pdfReader objects.
Document document = new Document();
PdfReader pdfReader = new PdfReader(inputPdf);
//Get total no. of pages in the pdf file.
int totalPages = pdfReader.getNumberOfPages();
//Check the startPage should not be greater than the endPage
//and endPage should not be greater than total no. of pages.
if(startPage > endPage || endPage > totalPages) {
System.out.println("Kindly pass the valid values " +
"for startPage and endPage.");
}else{
// Create writer for the outputStream
PdfWriter writer =
PdfWriter.getInstance(document, outputStream);
//Open document
document.open();
//Contain the pdf data.
PdfContentByte pdfContentByte =
writer.getDirectContent();
PdfImportedPage page;
while(startPage <= endPage) {
document.newPage();
page=writer.getImportedPage(pdfReader, startPage);
pdfContentByte.addTemplate(page, 0, 0);
startPage++;
}
//Close document and outputStream.
outputStream.flush();
document.close();
outputStream.close();
}
}
public static void main(String args[]){
try {
//Prepare output stream for
//new pdf file after split process.
OutputStream outputStream1 =
new FileOutputStream("SplitFile1.pdf");
OutputStream outputStream2 =
new FileOutputStream("SplitFile2.pdf");
//call method to split pdf file.
splitPdfFile(new FileInputStream("TestFile.pdf"),
outputStream1, 1, 10);
splitPdfFile(new FileInputStream("TestFile.pdf"),
outputStream2, 11, 20);
System.out.println("Pdf file splitted successfully.");
} catch (Exception e) {
e.printStackTrace();
}
}
}
해결 하나. – mkl
나는 당신이 말하는 것을 얻을 수 없습니다. 더 정교하게 설명해 주시겠습니까? –