2014-06-06 2 views
2

실제 크기와 인쇄시 페이지에 맞지 않는 차이가있는 PDF 파일을 만들고 싶습니다. 다음 예제를 시도했지만 작동하지 않습니다. 폭만 고정되고 높이는 고정되지 않습니다. 해결책이 있습니까?PDF에서 페이지 크기를 조절하지 못하게하는 방법은 무엇입니까?

package etiq; 

import java.io.FileOutputStream; 

import com.lowagie.text.Chunk; 
import com.lowagie.text.Document; 
import com.lowagie.text.Element; 
import com.lowagie.text.PageSize; 
import com.lowagie.text.Phrase; 
import com.lowagie.text.Rectangle; 
import com.lowagie.text.pdf.PdfPTable; 
import com.lowagie.text.pdf.PdfWriter; 

public class TestHeight { 
    public static void main(String[] args) { 
    Document document = new Document(PageSize.A4, 50, 50, 50, 50); 
    try { 
     String path = "D:\\test.pdf"; 
     FileOutputStream output = new FileOutputStream(path); 
     PdfWriter writer = PdfWriter.getInstance(document, output); 
     document.open(); 

     PdfPTable table = new PdfPTable(2); 
     table.setTotalWidth(400); 
     table.setLockedWidth(true); 
     table.getDefaultCell().setBorder(Rectangle.NO_BORDER); 
     table.getDefaultCell().setHorizontalAlignment(Element.ALIGN_CENTER); 
     table.getDefaultCell().setVerticalAlignment(Element.ALIGN_MIDDLE); 
     table.getDefaultCell().setFixedHeight(70); 
     table.addCell("!"); 
     table.addCell("Text Text Text Text Text Text "); 
     table.addCell(new Phrase(new Chunk("cell"))); 
     table.addCell("Text Text "); 
     table.addCell(new Phrase(new Chunk("cell"))); 
     table.addCell("Text Text Text "); 
     table.addCell(new Phrase(new Chunk("cell"))); 
     table.addCell("Text \nText \nText "); 
     table.addCell(new Phrase(new Chunk("cell"))); 
     table.addCell("Text "); 
     table.addCell(new Phrase(new Chunk("cell"))); 
     table.addCell("Text "); 
     table.addCell(new Phrase(new Chunk("cell"))); 
     table.addCell("Text "); 
     table.addCell(new Phrase(new Chunk("cell"))); 
     document.add(table); 

    } catch (Exception de) { 
     de.printStackTrace(); 
    } 
    document.close(); 
    } 
} 
+0

(1) 수입품을보고 두 번째 부분 (저기함)과 내 이름 (Bruno Lowagie)을 비교하십시오. 내 이름이 귀하의 코드에 있다는 사실은 귀하가 한 번 쓴 소프트웨어를 사용한다는 의미이며, 이제는 쓸모없는 것으로 간주됩니다. http://itextpdf.com/salesfaq 업그레이드를 참조하십시오. (2) 크기가 A4 (8.267 x 11.692 인치) 인 페이지를 만듭니다. 크기가 400 x 490 (5.55 x 6.81 인치) 인 테이블을 작성 중입니다. 위쪽 테두리는 50 (0.69 인치), 왼쪽 및 오른쪽 테두리는 97.5 (1.35 인치), 아래쪽 테두리는 352 (4.88 인치)입니다. 귀하의 질문은 무엇인가? 'PrintScaling'을'None'으로 설정하려고하십니까? –

+0

실제 크기 또는 페이지에 맞춤으로 인쇄하도록 선택한 경우 동일한 출력을 원합니다. –

+0

먼저 iText 버전을 업그레이드하고 싶습니다! –

답변

1

예를 들어 PrintPreferences을 살펴보십시오. 이 예에서는 몇 가지 인쇄 기본 설정에 대해 설명합니다. 당신에게 중요한 선은, 인쇄 할 때 페이지가 축소되지 않았는지 확인합니다

writer.addViewerPreference(PdfName.PRINTSCALING, PdfName.NONE); 

이렇게하면 인쇄 설정에 영향을 설정할 수있는 유일한 매개 변수입니다. 뷰어에게 페이지를 프린터 페이지의 크기에 맞추어야한다고 말할 수는 없습니다. PRINTSCALINGNONE으로 설정하여 실제 크기를 가져와야한다는 사실을 사용자에게 알릴 수 있습니다.

다른 동작을 원한다면 PDF에서 불가능한 것을 요청할 것입니다.

+0

불행히도,'writer.addViewerPreference (PdfName.PRINTSCALING, PdfName.NONE); '는 작동하지 않습니다. 실제 크기와 비교하여 페이지에 맞춤에 일부 여백이 있으며 내용의 위치가 서로 다릅니다. –

+0

@CristiB. - 위의 속성을 설정 한 짧은 경험에서 Adobe Reader는이 속성을 성공적으로 읽고 인쇄 대화 상자에 "실제 페이지"를 설정합니다. 반면에 크롬의 PDF 뷰어는이를 무시하고 "페이지에 맞춤"설정을 이전 인쇄 작업에서 설정 한 것과 동일하게 설정하는 것으로 보입니다. – jaredbaszler

관련 문제