我遇到了一个小问题,我正试图在我的应用程序中将PDF作为资源获取。目前,我有一个可以填写的PDF文件,已经存储为二进制文件旁边的文件,但现在我正在尝试将PDF嵌入二进制文件作为资源。
byte[] buffer;
try
{
s = typeof(BattleTracker).Assembly.GetManifestResourceStream("libReports.Resources.DAForm1594.pdf");
buffer = new byte[s.Length];
int read = 0;
do
{
read = s.Read(buffer, read, 32768);
} while (read > 0);
}
catch (Exception e)
{
throw new Exception("Error: could not import report:", e);
}
// read existing PDF document
PdfReader r = new PdfReader(
// optimize memory usage
buffer, null
);
每次运行代码时,我都会收到一个错误提示,说“未找到重建尾部。原始错误:未找到PDF startxref。”。
当我只是通过静态文件目录中的路径打开文件时,它可以正常工作。我尝试使用不同的编码 UTF-8、UTF-32、UTF-7、ASCII 等等…… 顺便说一下,我在获取 PowerPoint 文件资源时也遇到了同样的问题,最终我通过将 PowerPoint 转换为 XML 并使用它来解决了这个问题。 我已经考虑过对 PDF 进行相同的操作,但是我正在通过字段名称引用元素,这似乎在 XML PDF 中不起作用。
有人能帮我解决这个问题吗?
PdfReader
是否有一个接受流而不是字节数组的构造函数,这样您的代码就更简单了。 - MusiGenesis