Я пытаюсь добавить метки обрезки / обрезки в PDF с помощью PDFsharp
Я могу установить верхний левый угол PDF-файла, однако все остальные углы не отображаются,
Что я делаю, так это устанавливаю xGraphics.DrawLine
в положение верхнего левого угла, добавляя метки обрезки как для верхнего левого, так и для верхнего левого нижнего, а затем явращая страницу PDF, чтобы можно было использовать те же самые позиции xGraphics.DrawLine
,
, чтобы, если размер страниц PDF был другим, я надеюсь, потому что в верхнем левом углу он всегда будет иметь правильную метку удаленияposition.
Ниже приведен метод, который я создал, а также результат.
Я также попытался поместить 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();
}
}
}
}
}