내 의견에 언급했듯이 귀하의 질문은 게시되어 이전에 답변되었습니다. Divide one page PDF file in two pages PDF file
가 TileInTwo 예를 좀 더 자세히 살펴 보자 : 이것은 아직 문제의 또 다른 중복이 예에서
public void manipulatePdf(String src, String dest)
throws IOException, DocumentException {
// Creating a reader
PdfReader reader = new PdfReader(src);
int n = reader.getNumberOfPages();
// step 1
Rectangle mediabox = new Rectangle(getHalfPageSize(reader.getPageSizeWithRotation(1)));
Document document = new Document(mediabox);
// step 2
PdfWriter writer
= PdfWriter.getInstance(document, new FileOutputStream(dest));
// step 3
document.open();
// step 4
PdfContentByte content = writer.getDirectContent();
PdfImportedPage page;
int i = 1;
while (true) {
page = writer.getImportedPage(reader, i);
content.addTemplate(page, 0, -mediabox.getHeight());
document.newPage();
content.addTemplate(page, 0, 0);
if (++i > n)
break;
mediabox = new Rectangle(getHalfPageSize(reader.getPageSizeWithRotation(i)));
document.setPageSize(mediabox);
document.newPage();
}
// step 5
document.close();
reader.close();
}
public Rectangle getHalfPageSize(Rectangle pagesize) {
float width = pagesize.getWidth();
float height = pagesize.getHeight();
return new Rectangle(width, height/2);
}
을, 우리는 첫 번째 페이지의 페이지 크기의 PdfReader
인스턴스를 요청하고 우리가 만들 같은 폭과 높이의 절반 만있는 새로운 사각형.
우리는 다음 문서의 각 페이지를 가져, 우리는 다른 페이지에 두 번을 추가, 를 원래 페이지의 상단 절반을 보여주기 위해 한 번 부정적인 y
값으로 홀수 페이지에
- 을
- 한 번 짝수 페이지에서
y = 0
으로 표시하면 원본 페이지의 아래쪽 절반이 표시됩니다.
원본 문서의 모든 페이지가 다른 크기를 가질 수 있으므로 새로운 몇 개의 페이지마다 페이지 크기를 변경해야 할 수도 있습니다.
이 예에서는 위쪽과 아래쪽이 2 개인 페이지를 자릅니다. 간단한 수학을 사용하고 예제를 왼쪽 및 오른쪽 부분으로 두 개로자를 수 있습니다. 이것은 예를 TileInTwo2로 수행됩니다
예를 들면 : 당신은 다른 PDF 문서 대신 왼쪽과 오른쪽 부분을 포함하는 하나의 생성되도록이 예제를 적응 아무 문제가 없어야합니다
public void manipulatePdf(String src, String dest)
throws IOException, DocumentException {
// Creating a reader
PdfReader reader = new PdfReader(src);
int n = reader.getNumberOfPages();
// step 1
Rectangle mediabox = new Rectangle(getHalfPageSize(reader.getPageSizeWithRotation(1)));
Document document = new Document(mediabox);
// step 2
PdfWriter writer
= PdfWriter.getInstance(document, new FileOutputStream(dest));
// step 3
document.open();
// step 4
PdfContentByte content = writer.getDirectContent();
PdfImportedPage page;
int i = 1;
while (true) {
page = writer.getImportedPage(reader, i);
content.addTemplate(page, 0, 0);
document.newPage();
content.addTemplate(page, -mediabox.getWidth(), 0);
if (++i > n)
break;
mediabox = new Rectangle(getHalfPageSize(reader.getPageSizeWithRotation(i)));
document.setPageSize(mediabox);
document.newPage();
}
// step 5
document.close();
reader.close();
}
public Rectangle getHalfPageSize(Rectangle pagesize) {
float width = pagesize.getWidth();
float height = pagesize.getHeight();
return new Rectangle(width/2, height);
}
. 문제가있는 경우 다른 질문을 올리십시오.
안녕하세요, 귀하의 회신을 보내 주셔서 감사합니다 사실 나는 PDF 파일을 세로로 나누기 위해 노력하고 있습니다 | L 파트 페이지 | | 오른쪽 파트 페이지 |. 위 코드를 위 부분과 아래 부분으로 나누는 코드 – Narasappa