[英]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.