c# - 将裁切/出血标记添加到 PDF - PDFsharp
问题描述
我正在尝试使用PDFsharp向 PDF 添加修剪/出血标记
我可以设置 PDF 的左上角,但是所有其他角都没有显示,
我正在做的是将 设置为左上角xGraphics.DrawLine
的位置,为左上角和左上角添加出血标记,然后我正在旋转 PDF 的页面,以便xGraphics.DrawLine
可以使用相同的位置,
这样如果 PDF 的页面大小不同,我希望因为它的左上角,它总是有正确的出血标记位置。
下面是我创建的方法以及结果。
我也尝试过希望它会重新加载带有更改using (XGraphics xGraphics = XGraphics.FromPdfPage(pdfPage))
的for (int i = 1; i <= 4; i++)
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();
}
}
}
}
}
解决方案
AFAIK 您必须在更改页面旋转后创建一个新的 XGraphics 对象。
你想画四个角,每个角一个。但是AFAIK您的代码将在坐标随页面旋转的同一位置绘制四个角度。
停止旋转页面并分别绘制四个角度。
顺便说一句:只有在您稍后调用Save()
时调用才有意义Restore()
。Save()
据我所知,您的代码中的调用没有视觉效果。最好放下那条线。
推荐阅读
- flutter - 如何使用 Flutter 将图像上传到服务器 API
- java - Eclipse WindowBuilder 中是否有一种方法可以为一个窗口提供多个框架?
- html - 错误:ng:areq Bad Argument Argument 'blockGradeViewCtrl' 不是函数,在 Angularjs 中未定义
- c++ - c++ winrt uwp如何从依赖属性中获取值
- python - 计数停留在 7
- java - 安卓APK安装失败
- java - 如何添加每天的数量并在回收站视图中显示
- python-3.x - 类型错误:makeMove() 缺少 1 个必需的位置参数:'self'
- java - Java JDBC:无法将数据插入数据库
- android - 使用 http 协议在 webview ios 中加载本地文件。(在android和iOS中创建Webview服务器)