如何解决如何处置/关闭/释放 iText 7 对新创建的 pdf 的控制
我可以使用 iText 7 创建多个 pdf 文档。但是,创建后我想发送一封包含新创建的 pdf 作为附件的电子邮件。这会导致共享冲突错误。请参阅下面的步骤。
首先,我有一个静态类来初始化名为 PDFLibrary 的 pdf:
public static PdfWriter CreateWriter(string Filepath)
{
//set writer properties
WriterProperties writerProperties = new WriterProperties();
writerProperties.SetStandardEncryption(Encoding.ASCII.GetBytes(""),Encoding.ASCII.GetBytes("password"),EncryptionConstants.ALLOW_PRINTING,EncryptionConstants.ENCRYPTION_AES_128);
PdfWriter writer = new PdfWriter(Filepath,writerProperties);
//set compression level
writer.SetCompressionLevel(9); //0 = best speed,9 = best compression,-1 is default
return writer;
}
public static PdfDocument CreatePDFDocument(PdfWriter Writer)
{
return new PdfDocument(Writer);
}
public static Document CreateDocument(PdfDocument PDFDoc)
{
Document document = new Document(PDFDoc);
document.SetMargins(25,25,25);
return document;
}
然后我引用了上面的类和方法:
PdfWriter writer;
PdfDocument pdfDocument;
Document doc;
private void CreatePDFs(string PDFPath)
{
writer = PDFLibrary.CreateWriter(PDFPath);
pdfDocument = PDFLibrary.CreatePDFDocument(writer);
doc = PDFLibrary.CreateDocument(pdfDocument);
}
最后(在添加表格和单元格以创建所需的 pdf 之后),我关闭了 pdf 对象:
private void CloseDocumentStreams()
{
doc.Close();
writer.SetCloseStream(true);
writer.Close();
}
现在在发送电子邮件方法中尝试以下操作会导致“IOException:路径共享冲突”:
Attachment attachment = new Attachment(pathToPDF[i]);
有没有办法完全释放 iText 对文档的处理? example documentation 仅显示 document.Close()
,其中 document
是类型 Document
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。