我正在使用PDFsharp / MigraDoc创建一个MigraDoc文档发票,用于使用热敏打印机进行打印 . 我基本上使用了MigraDoc,因为我只需要带有文字和图像的段落 . 现在的情况是,在某些情况下,我必须指出账单被取消了 . 我担心我不能用MigraDoc但用PDFsharp做 . 我可以将它们混合并仍然将其打印为MigraDoc文档吗?
Update 显然有's no way for translating a PDFsharp document to a MigraDoc one. As I will need to use both, I' ll必须以另一种方式构建MigraDoc并将其转换为PDFsharp格式 . 有一次我_198278_的库,我现在无法...
我在[设计]中添加了一个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 ...
document是 MigraDoc 文档 . 最后,我有正确形成的Invoice.pdf . 现在, How can I show this pdf in the PdfSharp.Forms.PagePreview 我已加入我的表格?
之后, How should I print it?
2 回答
要回答更新的问题:我会尝试制作“仅限MigraDoc”的方法 .
我会用十字架创建一个图像 - 否则图像应该是透明的 .
我会将此图像添加到页脚,我会给它一个绝对位置和绝对大小,以便填充整个页面 .
通过将其作为页脚的一部分,MigraDoc将在每个页面上重复图像 .
光栅图像中的对角线不会非常平滑,但如果使用十字形足够大的图像(1000x1000像素或2000x2000像素左右),热敏打印机应该没问题 .
您只能将MigraDoc和PDFsharp混合用于创建PDF文件 .
由于您创建了PDF发票,因此将它们混合以创建带有十字的页面没有问题 .
以下是使用自己的XGraphics对象从MigraDoc中绘制页面的示例代码:http://forum.pdfsharp.net/viewtopic.php?f=8&t=3172
在该循环中调用
pdfRenderer.DocumentRenderer.RenderPage(gfx, i);
之后,您可以使用gfx
对象在页面上绘制线条或其他对象 .