我有一個網頁,顯示圖像的用戶。顯示屏旨在確認用戶已上傳適當的文檔。由於安全要求,我決定將圖像嵌入到html中(這樣可以使所有圖像具有相同的URL)。我的應用程序允許使用幾種不同類型的文件,但我的問題是使用pdf文件。如何閱讀使用GhostScript.NET整個PDF
我使用Ghostscript.NET和Ghostscript來閱讀我的pdf並將它們轉換爲圖像,以便我可以嵌入它們。我的Ghostscript實現正在讀取文件,但我只能顯示第一頁。我的問題:如何在一頁或多頁上顯示整個pdf?
我曾嘗試:
do
{
img = _rasterizer.GetPage(desired_x_dpi, desired_y_dpi, pageNumber);
img.Save(ms, ImageFormat.Png);
imageBytes = ms.ToArray();
returnString += Convert.ToBase64String(imageBytes);
pageNumber++;
} while (pageNumber <= _rasterizer.PageCount);
_rasterizer.Close();
ms.Close();
return returnString;
上述實施產生了非常大的字符串,但網頁上的「破碎的形象」圖標顯示。
do
{
img = _rasterizer.GetPage(desired_x_dpi, desired_y_dpi, pageNumber);
img.Save(ms, ImageFormat.Png);
imageBytes = ms.ToArray();
Session["NextPage"] = Convert.ToBase64String(imageBytes);
if (pageNumber > 1)
{
Response.Write("<script>");
Response.Write("window.open('ImageDisplayMultiPage.aspx')");
Response.Write("<" + "/script>");
}
else
{
Image3.ImageUrl = "data:image/png;base64," + Session["NextPage"];
}
pageNumber++;
} while (pageNumber <= _rasterizer.PageCount);
_rasterizer.Close();
ms.Close();
此實現成功打開等於文檔中的頁面數量窗戶,但會顯示在所有,但一個網頁上的PDF格式的第一頁。剩餘的網頁顯示'破碎的圖像'圖標。僅供參考此方法打開使用的網頁:
Image3.ImageUrl = "data:image/png;base64," + Session["NextPage"];
寫入它的頁面,它已正確設置。
此外,目標是將整個pdf轉換爲base64字符串。它可以顯示在多個頁面上,也可以顯示在一個頁面上。你知道如何做到這一點?
上傳到5MB文件大小是有限的,我猜最大的pdf將是5頁,但這不是一個問題。