簡體   English   中英

從C#中的資源獲取二進制文件

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM