簡體   English   中英

iText7 - 打印時創建具有精確尺寸的 PDF - 如何?

[英]iText7 - create PDF with exact dimensions when printed - how?

我正在使用 iText7(C#)創建一個簡單的 PDF,但我需要以正確的尺寸打印它。 這是我的代碼:

        PdfWriter writer = new PdfWriter("output.pdf");
        PdfDocument pdf = new PdfDocument(writer);
        pdf.SetDefaultPageSize(iText.Kernel.Geom.PageSize.LETTER);
        var page = pdf.AddNewPage();
        page.SetCropBox(new iText.Kernel.Geom.Rectangle(36, 36, 7.5f * 72, 10 * 72));
        PdfCanvas canvas = new PdfCanvas(page);
        canvas.SetStrokeColor(ColorConstants.BLACK).SetLineWidth(3);
        canvas.MoveTo(36, 36);
        canvas.LineTo(36, 36 + 72);       // Draw a line 1 inch long
        canvas.LineTo(36 + 72, 36 + 72);  // Draw a second line, perpendicular to the first, also 1 inch long
        canvas.ClosePathStroke();
        pdf.Close();

如果我右鍵單擊生成的 PDF 和 select“打印”,我的三角形不在頁面底部。

當我在我正在使用的 PDF 程序(PDF Architect)中打開生成的 PDF 時,它給了我幾個選項:

打印機選項

如果我只是單擊“打印”,它會給我 1 1/16" 長的行,並且從頁面邊緣開始大約 1/8",因此默認情況下 PDF Architect 似乎正在獲取我的裁剪框的內容和將其擴展到最大頁面可用性。

如果我在單擊“打印”之前單擊“適合”,則會產生所需的 output - 1 行長,從頁面的每一側開始 1/2 英寸。 這可行,但容易出錯 - 太容易忘記每次都單擊“適合”。

有沒有辦法生成一個 PDF 包含這樣的信息:“我以字母大小定位此文檔,但我與所有邊緣保持 1/2”,所以當你打印時,如果打印機有邊距 < = 1/2 英寸你應該沒問題,只需按照我描述的方式打印它,而不需要任何縮小或放大”?

您將無法從 PDF 文檔中完全控制它。 PDF 處理器(例如查看應用程序)或打印機(驅動程序)將始終能夠放大或縮小內容。

顯然,PDF Architect 默認啟用了“適合”選項,因此它將頁面縮放到選定的紙張尺寸。
您正在設置一個 7.5x10 英寸的裁剪框。我假設您要打印到 Letter 尺寸(8.5x11 英寸)的紙張。 所以 7.5x10 的頁面確實會被放大,你的內容會變得稍微大一些。

有沒有辦法生成一個 PDF 包含這樣的信息:“我以字母大小定位此文檔,但我與所有邊緣保持 1/2”,所以當你打印時,如果打印機有邊距 < = 1/2 英寸你應該沒問題,只需按照我描述的方式打印它,而不需要任何縮小或放大”?

我不會設置裁剪框。 當 PDF 文檔中的頁面是 Letter 尺寸且 output 紙張也是 Letter 尺寸時,是否啟用“適合”選項無關緊要,因為不需要進行縮放。 這絕對不是一個萬無一失的解決方案,但至少它不太容易出錯。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM