[英]Export Images to PDF
我有一个项目必须将图像导出到 PDF。图像和文本都需要导出到 pdf。有没有办法通过使用 silverPDF.dll 和 PdfReader 来实现?
代码在这里。
private void btnOutlook_Click(object sender, System.Windows.RoutedEventArgs e)
{
XBrush xbrush;
SaveFileDialog savePDF = new SaveFileDialog();
savePDF.Filter = "PDF file format | *.pdf";
if (savePDF.ShowDialog() == true)
{
PdfDocument document = new PdfDocument();
PdfPage page = document.AddPage();
XGraphics gfx = XGraphics.FromPdfPage(page);
XPdfFontOptions options = new XPdfFontOptions(PdfFontEncoding.Unicode, PdfFontEmbedding.Always);
XFont font = new XFont("Huxtable", 20, XFontStyle.Bold, options);
for (int x = 0; x < 10; x++)
{
if (x % 2 == 0)
{
xbrush = XBrushes.Red;
}
else
xbrush = XBrushes.Black;
gfx.DrawString(string.Format("{0}", stringArray[x]), font, xbrush, new XRect(0, (x * 20), page.Width, page.Height), XStringFormats.TopLeft);
}
document.Save(savePDF.OpenFile());
}
}
我可以在此代码的何处插入将其插入 pdf 的图像? 有什么办法吗? 感谢所有回复。
这是一种使用来自 jpg 图像的全文层构建 PDF 的方法,只需使用来自 Visual Studio 2022 和 DotNet 6 中的 Nugget package 的 Tesseract 4.1.1。
这是 Function,用于从多个 jpg 创建 PDF。
private void PDFRenderer_OCR_MutipleJPG(String PDFName, String PDFTitle, String FolderJpg, int NumberImage) { IResultRenderer renderer = Tesseract.PdfResultRenderer.CreatePdfRenderer(PDFName, "tessdata", false); renderer.BeginDocument(PDFTitle); string configurationFilePath = "tessdata"; string configfile = Path.Combine("tessdata", "pdf"); //using (TesseractEngine engine = new TesseractEngine(configurationFilePath, "eng", EngineMode.TesseractAndLstm, configfile)) EngineMode M1 = EngineMode.TesseractOnly;//election OCR mode TesseractEngine engine = new TesseractEngine("tessdata", "eng", M1); // progressBar1.Maximum= NumberImage; // progressBar1.Minimum = 1; for (i =1; i < NumberImage+1;i++)//i=1, because my first image name is img1.jpg { //progressBar1.Value= i+1; lPage.Text = "Processing page: " + i.ToString(); lPage.Refresh(); TesseractEngine engine = new TesseractEngine("tessdata", "eng", M1); string ImageJpg = "c:\\temp" + "\\" + FolderJpg + "\\" + FolderJpg + i.ToString() + ".jpg"; // MessageBox.Show("IMG: " + ImageJpg); using (var imagefile = new Bitmap(ImageJpg)) { using (var img = PixConverter.ToPix(imagefile)) { using (Tesseract.Page page = engine.Process(img, PDFTitle)) { renderer.AddPage(page); // Adding converted page } } } } renderer.Dispose(); // Clear ressourcce //Reset progressBar1 to origin setting //progressBar1.Value= 1; //progressBar1.Maximum = 100; //progressBar1.Minimum= 0; //progressBar1.Value = 0; }
只需像这样调用此方法:
PDFRenderer_OCR_MutipleJPG("C:\temp\outp","倾斜","文档", 20);
"C:\temp\outp" -> 没有扩展名的最终 pdf 的名称和路径,它将是 "C:\temp\outp.pdf"。
title="title" PDF上的元信息
文档 -> 是我的图像文件夹源和每个图像名称的一部分,没有索引。
这里要转换的图像文件夹是:C:\temp\document\ -> 里面: -> Document1.jpg, Document2.jpg, Document3.jpg, ...
20是索引,代表要转换的图片数量。
可选的进度条,用于在处理过程中在 UI 中查看页码
来自法国的最好的问候弗朗西斯
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.