https://itextpdf.com/en/demos/convert-image-to-pdf-free-online
我从他们的网站上得到了关于如何做到这一点的演示代码,我正在c#visualstudio中构建这个代码,使用selenium/nunit
这看起来很直接,但我遇到了一些我不理解的问题。这是我的代码:
using System;
using iText.IO.Image;
using iText.Kernel.Pdf;
using iText.Layout;
using iText.Layout.Element;
namespace TesingPDFConvert
{
internal class Program
{
private static string ORIG = @"C:Users$usernameDocumentsc_projectsSeleniumScreenshots";
private static string OUTPUT_FOLDER = @"C:Users$usernameDocumentsc_projectspdf_output";
public static void Main(string[] args)
{
PdfDocument pdfDocument = new PdfDocument(new PdfWriter(OUTPUT_FOLDER + "ImageToPdf.pdf"));
Document document = new Document(pdfDocument);
ImageData imageData = ImageDataFactory.Create(ORIG);
Image image = new Image(imageData);
image.SetWidth(pdfDocument.GetDefaultPageSize().GetWidth() - 50);
image.SetAutoScaleHeight(true);
document.Add(image);
pdfDocument.Close();
}
}
}
当我运行这个程序时,我被拒绝访问SeleniumScreenshots文件夹,但另一个文件夹(pdf_output)似乎有访问权限。如果我将文件夹更改为pdf_output文件夹以从中获取图像,我仍然被拒绝访问,但是,它正在将空的pdf写入输出文件夹,因此它似乎有访问权限。我试着把文件夹从";只读";属性,但由于某种原因没有保存,我不认为这是问题所在,因为我在其他selenium或c#项目中写入了我的文档文件夹,并且没有出现问题。我的想法是我用错了itext7。
这里的目标是在我的SeleniumScreenshots文件夹中获取PNG,并将它们转换为PDF,并在运行selenium/nunit测试(在代码中看不到)后放入PDF_outputs文件夹。
在我的selenium/nunit项目无法使用它之后,我打开了一个新项目,并设置了他们的代码(控制台应用程序),但仍然得到了相同的结果。我被难住了。
我对c#和visual studio的代码/开发还很陌生。感谢您提前提供的帮助。
根据注释,解决方案如下:
ORIG
是文件名的末尾,不能引用文件夹OUTPUT_FOLDER
最后指的是文件夹下的空间,您缺少
代码本身没有问题。