簡體   English   中英

將pdf轉換為流的最有效方法是什么

[英]What would be the most efficient way of converting a pdf to a stream

我有一個WCF服務,它將接收一個ID並根據該ID返回一個pdf文件。 我假設執行此操作的最佳方法是將pdf文件轉換為某種字符串,然后將其返回。 但是,我不確定要使用哪個流( Stream, Filestream, or MemoryStream )。

我知道我可以將pdf文件讀取到字節數組,然后使用MemoryStream對其進行處理,但是我覺得有一種更有效的方法。

我試圖做這篇文章在這里建議的: 如何將pdf轉換為內存流

硬編碼文件路徑以返回如下:

return File(@"C:\MyFile.pdf", "application/pdf");

只是為了看看會發生什么,但是在File上看到一條錯誤消息:“'System.IO.File'是'type',但是卻像'variable'一樣使用。

誰能提供一些見識?

編輯

這是我目前正在努力的方向:

[OperationContract]
[WebInvoke(Method = "GET",
    RequestFormat = WebMessageFormat.Json,
    ResponseFormat = WebMessageFormat.Json,
    UriTemplate = "/GetInvoiceFile")]
Stream GetInvoiceFile(string id);

public Stream GetInvoiceFile(string BillingPeriodId)
{
    byte[] bytes = File.ReadAllBytes(@"C:\pdf-test.pdf");
    return new MemoryStream(bytes);
}

我只是不完全知道如何編輯OperationContract以返回pdf。 有任何想法嗎?

答案取決於您所擁有的。 您似乎將文件的路徑作為string 您的WCF方法可能返回一個byte[] 您需要以某種方式有效地將該路徑轉換為byte[]

您可以使用File.ReadAllBytes(string path)進行此操作。

WCF還支持流式寫入,但是稍微復雜一點,並且對於小文件來說,性能的勝利是可疑的。

您嘗試指定MIME類型( "application/pdf" )的事實告訴我,您實際上並不了解WCF服務和HTTP服務之間的區別。 研究這是您的家庭作業。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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