为从 PDF 转换为 PNG 的图像创建 zip 文件
Posted
技术标签:
【中文标题】为从 PDF 转换为 PNG 的图像创建 zip 文件【英文标题】:Create a zip file for images converted from PDF to PNG 【发布时间】:2020-06-01 10:46:28 【问题描述】:我想将从 PDF 转换为 PNG 的文件保存在 zip 文件中。到目前为止,我能够将单个 PDF 文档转换为 PNG 格式,但是如果 PDF 有多个页面,我的应用程序只会转换并单独保存它们(一次一个),我必须在其中重复单击保存按钮之前保存 PDF 的下一页等。
我使用 Syncfusion 进行文档转换,使用 DotNetZip 压缩文件。 这是我的代码:
//Loaded PDF file
PdfLoadedDocument loadedDocument = new PdfLoadedDocument(TxtBox_FileName.Text);
//ExportAsImage method returns specified page in the PDF document as Bitmap image
Bitmap[] images = loadedDocument.ExportAsImage(0, loadedDocument.Pages.Count - 1);
Image imageToConvert = null;
for (int i = 0; i < images.Length; i++)
if(i == 0)
//Save converted image if PDF is single page
imageToConvert = images[i];
SaveFileDialog _saveFile = new SaveFileDialog();
_saveFile.Title = "Save file";
_saveFile.Filter = "PNG|*.png";
_saveFile.FileName = Lbl_FileName.Text;
if (_saveFile.ShowDialog() == DialogResult.OK)
imageToConvert.Save(_saveFile.FileName, ImageFormat.Png);
loadedDocument.Close(true);
imageToConvert.Dispose();
else
//Save converted images if PDF is multi-page
Image imageToConvert2 = images[i];
SaveFileDialog _saveFile = new SaveFileDialog();
_saveFile.Title = "Save file";
_saveFile.Filter = "PNG|*.png";
_saveFile.FileName = Lbl_FileName.Text;
if (_saveFile.ShowDialog() == DialogResult.OK)
imageToConvert2.Save(_saveFile.FileName, ImageFormat.Png);
//Create a zip file for all the images
string fileName = TxtBox_FileName.Text;
Thread thread = new Thread(t =>
using (ZipFile zip = new ZipFile())
FileInfo fileInfo = new FileInfo(fileName);
zip.AddFile(fileName);
DirectoryInfo di = new DirectoryInfo(fileName);
zip.Save(string.Format("0/1.zip", di.Parent.FullName, fileInfo.Name));
)
IsBackground = true ;
thread.Start();
loadedDocument.Close(true);
imageToConvert2.Dispose();
非常感谢您的帮助!
【问题讨论】:
你上面的代码有什么问题? 我无法从多页 PDF 文档中压缩转换后的图像文件。 【参考方案1】:进一步分析,我们可以使用“System.IO.Compression命名空间中可用的ZipFilehttps://docs.microsoft.com/en-us/dotnet/api/system.io.compression.zipfile?view=netcore-3.1实例的CreateFromDirectory方法”来实现将PNG图像(使用ExportAsImage方法生成)保存到zip文件的要求。使用 CreateFromDirectory 方法请在下方找到代码 sn-p,
string resultPath = @"../../Result.zip";
// Save all images in a zip file.
ZipFile.CreateFromDirectory(@"../../Output", resultPath);
我们已经修改了您的代码 sn-p 并创建了相同的示例,可以从下面的链接下载,
https://www.syncfusion.com/downloads/support/directtrac/general/ze/ExportImageZip1514521637
问候, Uthandadraja S(我为 Syncfusion 工作)
【讨论】:
以上是关于为从 PDF 转换为 PNG 的图像创建 zip 文件的主要内容,如果未能解决你的问题,请参考以下文章
imagemagick 将 RGB PNG 转换为 CMYK PDF
我需要检测扫描图像中 QR 码的大致位置(PDF 转换为 PNG)