【问题标题】:Add Trim/Bleed Marks to PDF - PDFsharp将裁切/出血标记添加到 PDF - PDFsharp
【发布时间】:2020-03-07 02:25:47
【问题描述】:

我正在尝试使用 PDFsharptrim/bleed marks 添加到 PDF

我可以设置 PDF 的左上角,但是所有其他角都没有显示,

我正在做的是将 xGraphics.DrawLine 设置到左上角的位置,添加出血标记左上角和左上角底部,然后我正在旋转 PDF 的页面,以便可以使用相同的 xGraphics.DrawLine 位置,

如果 PDF 的页面大小不同,我希望因为它在左上角,所以它总是有正确的出血标记位置。

下面是我创建的方法以及结果。

我还尝试将using (XGraphics xGraphics = XGraphics.FromPdfPage(pdfPage)) 放在@ 中987654328@ 希望它会重新加载带有更改的 pdf 页面,因为第一个循环似乎没问题,但是没有任何更改。

/// <summary>
/// Add Bleed To PDF.
/// </summary>
/// <param name="pdfDocument"></param>
static void AddBleed(ref PdfDocument pdfDocument)
{
    // Check The Pdf Has Been Loaded Into Memory.
    if (pdfDocument.PageCount > 0)
    {
        // Create Pen.
        XPen xPen = new XPen(XColors.Gray, 3);
        const float TRIM_MARK_LEN = 30;

        // Start Looping The Pdf's Pages
        foreach (PdfPage pdfPage in pdfDocument.Pages)
        {
            using (XGraphics xGraphics = XGraphics.FromPdfPage(pdfPage))
            {                     
                // A Page Has 4 Sides.
                for (int i = 1; i <= 4; i++)
                {
                    // Top Left.
                    xGraphics.DrawLine(xPen, TRIM_MARK_LEN, TRIM_MARK_LEN - 10, TRIM_MARK_LEN, -10);

                    // Bottom Top Left.
                    xGraphics.DrawLine(xPen, 0, TRIM_MARK_LEN, TRIM_MARK_LEN - 10, TRIM_MARK_LEN);

                    // Rotate The Pdf Page.
                    xGraphics.PdfPage.Rotate = xGraphics.PdfPage.Rotate + 90;

                    // Save The Graphics.
                    xGraphics.Save();
                }
            }
        }
    }
}

【问题讨论】:

    标签: c# pdf pdfsharp


    【解决方案1】:

    AFAIK 您必须在更改页面旋转后创建一个新的 XGraphics 对象。

    你想画四个角,每个角一个。但是 AFAIK 您的代码将在坐标随页面旋转的同一位置绘制四个角度。

    停止旋转页面,分别绘制四个角。

    顺便说一句:调用Save() 仅在您稍后调用Restore() 时才有意义。据我所知,在您的代码中调用 Save() 没有视觉效果。最好放弃那条线。

    【讨论】:

    • 我希望我可以旋转它,因为我无法获得所有其他角,但是感谢您清除它不会按我的预期工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-22
    • 1970-01-01
    • 2013-02-14
    • 1970-01-01
    • 2014-03-16
    相关资源
    最近更新 更多