【发布时间】:2020-03-07 02:25:47
【问题描述】:
我正在尝试使用 PDFsharp 将 trim/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();
}
}
}
}
}
【问题讨论】: