MigraDoc:我可以画横跨一个部分的线吗?
MigraDoc: Can I draw lines crossing out a section?
我正在使用 PDFsharp/MigraDoc 创建 MigraDoc 文档发票,以便使用热敏打印机进行打印。我基本上使用 MigraDoc,因为我只需要包含文本和图像的段落。现在的问题是,在某些情况下,我必须指出该法案已被划掉取消。恐怕我不能用 MigraDoc 做,但用 PDFsharp 做。
我可以混合使用两者并将其打印为 MigraDoc 文档吗?
更新
显然没有办法将 PDFsharp 文档翻译成 MigraDoc 文档。
由于我需要同时使用两者,因此我必须以另一种方式构建 MigraDoc 并将其转换为 PDFsharp 格式。完成此操作后,我需要使用 PDFSharp 的库进行预览和打印,目前我无法使用...
我在 [Design] 中添加了一个 PagePreview(我使用的是 WinForms),但我不知道如何使用 de PDFSharp 文档填充它...
代码片段:
//Render a pdf
PdfDocumentRenderer pdfRenderer = new PdfDocumentRenderer(false);
pdfRenderer.Document = document;
pdfRenderer.RenderDocument();
//Draw some lines
var page = pdfRenderer.PdfDocument.Pages[0];
PageInfo pageInfo = pdfRenderer.DocumentRenderer.FormattedDocument.GetPageInfo(1);
page.Width = pageInfo.Width;
page.Height = pageInfo.Height;
page.Orientation = pageInfo.Orientation;
XGraphics gfx = XGraphics.FromPdfPage(page);
{
gfx.DrawLine(XPens.Black, 15, page.Height / 2, page.Width -15, 2 * page.Height / 3);
gfx.DrawLine(XPens.Black, page.Width - 15, page.Height / 2, 15, 2 * page.Height / 3);
}
string filename = "Invoice.pdf";
pdfRenderer.PdfDocument.Save(filename);
//this.pagePreview1 ...
文档 是 MigraDoc 文档。最后我有 Invoice.pdf 是正确形成的。现在,如何在我添加到我的表单的 PdfSharp.Forms.PagePreview 中显示此 pdf?
然后,我应该如何打印它?
您只能混合使用 MigraDoc 和 PDFsharp 来创建 PDF 文件。
由于您创建了 PDF 发票,因此将它们混合在一起创建带有十字的页面是没有问题的。
下面是使用自己的 XGraphics 对象从 MigraDoc 绘制页面的示例代码:
http://forum.pdfsharp.net/viewtopic.php?f=8&t=3172
在该循环中调用 pdfRenderer.DocumentRenderer.RenderPage(gfx, i);
后,您可以使用 gfx
对象在页面上绘制线条或其他对象。
回答更新后的问题:我会尝试采用 "MigraDoc only" 方法。
我会创建一个带有十字的图像 - 否则图像应该是透明的。
我会把这张图片添加到页脚,我会给它一个绝对位置和绝对大小,这样它就会填满整个页面。
通过将其作为页脚的一部分,MigraDoc 将在每一页上重复该图像。
光栅图像的对角线不会非常平滑,但如果您将带有十字的图像制作得足够大(1000x1000 像素或 2000x2000 像素左右),热敏打印机应该没问题。
我正在使用 PDFsharp/MigraDoc 创建 MigraDoc 文档发票,以便使用热敏打印机进行打印。我基本上使用 MigraDoc,因为我只需要包含文本和图像的段落。现在的问题是,在某些情况下,我必须指出该法案已被划掉取消。恐怕我不能用 MigraDoc 做,但用 PDFsharp 做。 我可以混合使用两者并将其打印为 MigraDoc 文档吗?
更新 显然没有办法将 PDFsharp 文档翻译成 MigraDoc 文档。 由于我需要同时使用两者,因此我必须以另一种方式构建 MigraDoc 并将其转换为 PDFsharp 格式。完成此操作后,我需要使用 PDFSharp 的库进行预览和打印,目前我无法使用...
我在 [Design] 中添加了一个 PagePreview(我使用的是 WinForms),但我不知道如何使用 de PDFSharp 文档填充它...
代码片段:
//Render a pdf
PdfDocumentRenderer pdfRenderer = new PdfDocumentRenderer(false);
pdfRenderer.Document = document;
pdfRenderer.RenderDocument();
//Draw some lines
var page = pdfRenderer.PdfDocument.Pages[0];
PageInfo pageInfo = pdfRenderer.DocumentRenderer.FormattedDocument.GetPageInfo(1);
page.Width = pageInfo.Width;
page.Height = pageInfo.Height;
page.Orientation = pageInfo.Orientation;
XGraphics gfx = XGraphics.FromPdfPage(page);
{
gfx.DrawLine(XPens.Black, 15, page.Height / 2, page.Width -15, 2 * page.Height / 3);
gfx.DrawLine(XPens.Black, page.Width - 15, page.Height / 2, 15, 2 * page.Height / 3);
}
string filename = "Invoice.pdf";
pdfRenderer.PdfDocument.Save(filename);
//this.pagePreview1 ...
文档 是 MigraDoc 文档。最后我有 Invoice.pdf 是正确形成的。现在,如何在我添加到我的表单的 PdfSharp.Forms.PagePreview 中显示此 pdf?
然后,我应该如何打印它?
您只能混合使用 MigraDoc 和 PDFsharp 来创建 PDF 文件。
由于您创建了 PDF 发票,因此将它们混合在一起创建带有十字的页面是没有问题的。
下面是使用自己的 XGraphics 对象从 MigraDoc 绘制页面的示例代码: http://forum.pdfsharp.net/viewtopic.php?f=8&t=3172
在该循环中调用 pdfRenderer.DocumentRenderer.RenderPage(gfx, i);
后,您可以使用 gfx
对象在页面上绘制线条或其他对象。
回答更新后的问题:我会尝试采用 "MigraDoc only" 方法。
我会创建一个带有十字的图像 - 否则图像应该是透明的。
我会把这张图片添加到页脚,我会给它一个绝对位置和绝对大小,这样它就会填满整个页面。
通过将其作为页脚的一部分,MigraDoc 将在每一页上重复该图像。
光栅图像的对角线不会非常平滑,但如果您将带有十字的图像制作得足够大(1000x1000 像素或 2000x2000 像素左右),热敏打印机应该没问题。