有没有办法使用 itext7 和 C# 获取 PdfDocument 对象的完整路径(甚至只是文件名)?
Is there a way to get the full path (or even just the file name) of a PdfDocument object using itext7 and C#?
我有一个 PdfDocument 对象列表,这些对象是按页码从一个大型原始 PDF 文件中拆分出来的(原始文件中的每一页对应一个文档)。
我只想迭代那些文档
foreach (PdfDocument doc in splitDocuments)
并获取每个文件的 path/doc 名称,但我无法找到 属性 来提供基本信息。我需要根据文件中的一些信息将文件复制到不同的位置,但到目前为止我还无法获取文件路径。
感谢您的帮助!
通常 PdfDocument
.
没有唯一的文件名
首先回想一下,PdfDocument
可以基于 PdfReader
、PdfWriter
或 PdfReader
/ PdfWriter
对创建。 reader 和编写器都可能是基于文件的。因此,通常不清楚“the”文件名的含义,可能有两个。但是两者也有可能是基于一个非文件对象,那就没有文件名了。
如果 PdfWriter
是基于文件的,您可以从基础 FileStream
中确定关联的文件名,对于 PdfDocument doc
即
doc.GetWriter().GetOutputStream()
对于 PdfReader
等价物并不容易(如果可能的话):根据使用的选项,文件可能已被读入字节数组,然后被遗忘。但即便如此,即如果 reader 仍然基于文件流,则它隐藏在两层或三层 internal
或 private
信息之下。使用反射,您可以处理这些层,但这当然不适用于生产目的。
您还提到那些 PdfDocument
对象是从一个大型原始 PDF 中拆分出来的。如果通过 PdfSplitter
实用程序 class 发生这种情况,则这些文档没有 PdfReader
开头。
我有一个 PdfDocument 对象列表,这些对象是按页码从一个大型原始 PDF 文件中拆分出来的(原始文件中的每一页对应一个文档)。
我只想迭代那些文档
foreach (PdfDocument doc in splitDocuments)
并获取每个文件的 path/doc 名称,但我无法找到 属性 来提供基本信息。我需要根据文件中的一些信息将文件复制到不同的位置,但到目前为止我还无法获取文件路径。
感谢您的帮助!
通常 PdfDocument
.
首先回想一下,PdfDocument
可以基于 PdfReader
、PdfWriter
或 PdfReader
/ PdfWriter
对创建。 reader 和编写器都可能是基于文件的。因此,通常不清楚“the”文件名的含义,可能有两个。但是两者也有可能是基于一个非文件对象,那就没有文件名了。
如果 PdfWriter
是基于文件的,您可以从基础 FileStream
中确定关联的文件名,对于 PdfDocument doc
即
doc.GetWriter().GetOutputStream()
对于 PdfReader
等价物并不容易(如果可能的话):根据使用的选项,文件可能已被读入字节数组,然后被遗忘。但即便如此,即如果 reader 仍然基于文件流,则它隐藏在两层或三层 internal
或 private
信息之下。使用反射,您可以处理这些层,但这当然不适用于生产目的。
您还提到那些 PdfDocument
对象是从一个大型原始 PDF 中拆分出来的。如果通过 PdfSplitter
实用程序 class 发生这种情况,则这些文档没有 PdfReader
开头。