[英]Getting a binary file from resource in C#
我有一点问题,我想在我的应用程序中获取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。
任何人都可以帮我解决这个问题吗?
将try
块中的代码更改为:
using (s = typeof(BattleTracker).Assembly.GetManifestResourceStream
("libReports.Resources.DAForm1594.pdf"))
{
buffer = new byte[(int)s.Length];
s.Read(buffer, 0, (int)s.Length);
}
我假设您拥有资源的正确路径,并且其Build Action
属性设置为Embedded Resource
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.