【发布时间】:2020-10-07 22:53:18
【问题描述】:
我正在尝试保存从 PDF 转换为 PNG 的图像文件。如果 PDF 是使用“SaveFileDialog”的单页文档,我希望我的应用程序保存转换后的图像,如果 PDF 文件是多页文档,我希望我的应用程序使用“FolderBrowserDialog”将它们保存到文件夹中”。
我的问题是,如果 PDF 文件是多页文档,我的代码将首先使用“SaveFileDialog”保存第一个图像(转换后),然后再尝试使用“FolderBrowserDialog”保存其余图像。
这是我尝试过的。
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_OriginalFileName.Text;
if (_saveFile.ShowDialog() == DialogResult.OK)
{
imageToConvert.Save(_saveFile.FileName, ImageFormat.Png);
imageToConvert.Dispose();
}
else if (_saveFile.ShowDialog() == DialogResult.Cancel)
{
return;
}
}
else
{
if (i > 0)
{
// Save converted Images if PDF is multi-page
Image imageToConvert2 = images[i];
FolderBrowserDialog fbd = new FolderBrowserDialog();
fbd.ShowDialog();
fbd.Description = "Select the folder you want save your files into.";
string pathString = Path.Combine(fbd.SelectedPath, subFolder);
Directory.CreateDirectory(pathString);
if (fbd.ShowDialog() == DialogResult.Cancel)
{
return;
}
string saveFileNamesPNG = string.Format(Lbl_OriginalFileName.Text + "_" + i.ToString() + ".png", ImageFormat.Png);
imageToConvert.Save(Path.Combine(pathString, saveFileNamesPNG));
imageToConvert.Dispose();
}
}
}
非常感谢任何帮助。
【问题讨论】:
-
If
images.Length = 1then SaveFileDialog else ifimages.Length > 1then FolderBrowserDialog,其中for each img as Image in Images将img保存到光盘。如果images.Length = 0什么都不做。 -
所以我将几行代码更改为您的,应用程序现在可以单独保存转换后的文件,但是,现在我遇到了这个问题,我的 FolderBrowserDialog 无法将图像保存到一个文件夹。在将图像保存到其文件夹之前,它会不断弹出大约 4 次。
标签: c# winforms savefiledialog folderbrowserdialog