我正在寻找一种方法来检查用户X是否通过另一个进程打开了共享网络中存储的PDF文件。
我的搜索不满意,我现在尝试使用iText7 PDFwriter检查PDF是否正在使用。而且可以,但是当不使用PDF时,我的理论就会失败。
如果不使用PDF,那么关闭作者将破坏我的PDF。
我的代码:
region_list
所以我的问题是。我可以不对PDF进行任何操作而关闭PDFwriter吗?取消写入?
答案 0 :(得分:1)
一个人可以将相同的内容写入文件,而不必取消写入。
首先让我们将pdf写入内存:
ByteArrayOutputStream baos = new ByteArrayOutputStream();
PdfDocument pdfDocument = new PdfDocument(new PdfReader(sourcePath), new PdfWriter(baos));
pdfDocument.close();
然后用存储在内存中的字节重写文件:
PdfDocument pdfDoc = new PdfDocument(new PdfReader(new RandomAccessSourceFactory().createSource(baos.toByteArray()), new ReaderProperties()),
new PdfWriter(sourcePath), new StampingProperties().useAppendMode());
pdfDoc.close();
副作用:在重写pdf时,iText可能会对其进行优化。