如何解决PDFium - 从图像流创建 PDF 文档,而无需在 C# 中转换为位图
我正在使用 PDFium c# 工具从 PNG 图像流创建 PDF 文档。
我有一个获取多个图像流对象的 API,我应该组合图像流并创建一个 PDF 文档和 PDF 流。我需要点击另一个 API 来保存这个文档。
我经历了 PDFium documentation 但是,示例显示了如何从图像而不是从流加载 PDF
我们需要从 Stream 创建一个图像来加载 PDF 还是有其他替代方法?
非常感谢任何帮助
提前谢谢
我根据文档创建的示例代码
public void GeneratePdfFromimagestream(List<Stream> imagestreams,String pdfSaveLocation = null)
{
int pageIndex = 0;
//Initialize C# PDF Library
PdfCommon.Initialize();
//Create a PDF document
using (var doc = PdfDocument.CreateNew())
{
foreach (var imagestream in imagestreams)
{
//I am creating a Bitmap image here,is there a way I can achevie the same withrout creating the image
var image = System.Drawing.Bitmap.FromStream(imagestream,true) as System.Drawing.Bitmap;
//Create empty PdfBitmap
using (PdfBitmap pdfBitmap = new PdfBitmap(image.Width,image.Height,true))
{
using (var g = system.drawing.graphics.FromImage(pdfBitmap.Image))
{
//Draw image to PdfBitmap
g.DrawImage(image,image.Width,image.Height);
}
//Create Image object
var imageObject = PdfImageObject.Create(doc,pdfBitmap,0);
//Calculate size of image in PDF points
var size = CalculateSize(pdfBitmap.Width,pdfBitmap.Height,image.HorizontalResolution,image.VerticalResolution);
//Add empty page to PDF document
doc.Pages.InsertPageAt(pageIndex,size);
//Insert image to newly created page
doc.Pages[pageIndex].PageObjects.Add(imageObject);
//set image matrix
imageObject.Matrix = new FS_MATRIX(size.Width,size.Height,0);
//Generate PDF page content to content stream
doc.Pages[pageIndex].GenerateContent();
pageIndex++;
}
}
// Save PDF document as "saved.pdf" in no incremental mode
if (string.IsNullOrWhiteSpace(pdfSaveLocation))
doc.Save($"saved_{Guid.NewGuid().ToString()}.pdf",SaveFlags.NoIncremental);
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。