【发布时间】:2022-04-04 21:44:18
【问题描述】:
我正在使用 PDFsharp 库对 PDF 文件进行一些简单的操作。
我有以下代码将图像从文件夹复制到现有的 PDF 文档中 - 它按预期工作:
public void AddImagePDF()
{
this.DrawPage(this.PDFdoc.Pages[0]);
this.DrawPage(this.PDFdoc.Pages[1]);
this.DrawPage(this.PDFdoc.Pages[2]);
}
private void DrawPage(PdfPage page)
{
XGraphics gfx = XGraphics.FromPdfPage(page);
DrawPng(gfx);
}
private void DrawPng(XGraphics gfx)
{
XImage imageMu = XImage.FromFile(@"C:\Images\AnImage.png");
double width = imageMu.PixelWidth * 7.0 / imageMu.HorizontalResolution;
double height = imageMu.PixelHeight * 7.0 / imageMu.HorizontalResolution;
gfx.DrawImage(imageMu,500,30,width,height);
this.PDFdoc.Save(this.DestinationFullPath);
}
为了使解决方案更便携,我已将图像文件 AnImage.png 移动到项目资源中 - 此处:
Properties.Resources.AnImage
但是我需要对代码进行哪些更改才能使用资源文件而不是保存在 C-Drive 中的文件?
【问题讨论】:
-
How to get path of Properties.Resources.Image in .NET 的可能重复项您可以通过
XImage imageMu = XImage.FromGdiPlusImage(Properties.Resources.AnImage);使用本文中的最后一个答案获取图像 -
要获得项目资源,你会先
Assembly.GetExecutingAssembly().GetManifestResourceStream("Properties.Resources.AnImage.png")然后XImage.FromStream?不确定这是否是 PDFSharp api 的一部分。 -
也在他们的wiki上找到了这个,也许这会对你有所帮助:pdfsharp.net/wiki/MigraDoc_FilelessImages.ashx?HL=stream