我最近在網站上創建了一個功能,該功能將生成一個包含圖像和文本的PDF文檔。這些將被打印出來並粘在咖啡杯上。使用ASP.NET生成打印質量PDF
我已經使用Winnovative HTML進行了PDF轉換。
一切工作正常,但圖像質量太低,打印,看起來垃圾的馬克杯。
我被告知這是因爲圖像只有70dpi(屏幕質量),當它需要300dpi(打印質量)。
有沒有一種方法可以生成這些PDF以便圖像具有打印質量?
我最近在網站上創建了一個功能,該功能將生成一個包含圖像和文本的PDF文檔。這些將被打印出來並粘在咖啡杯上。使用ASP.NET生成打印質量PDF
我已經使用Winnovative HTML進行了PDF轉換。
一切工作正常,但圖像質量太低,打印,看起來垃圾的馬克杯。
我被告知這是因爲圖像只有70dpi(屏幕質量),當它需要300dpi(打印質量)。
有沒有一種方法可以生成這些PDF以便圖像具有打印質量?
我對iTextSharp的運氣非常好,我用它製作了許多高質量的pdf。但我從頭開始構建PDF,並直接打印。是否有可能在代碼中重新創建頁面內容並打印?做起來相當簡單,並且有很多資源/示例可供您構建。
如果不是,那麼有像pdfcrowd這樣的產品。我不能說我自己用過它。但是我聽說有人使用它來獲得高質量的html到pdf,但是你必須爲特權付費。
當您使用PDF格式的光柵圖像時,其質量變得越來越低,並且您可以放大PDF文檔。爲了進行比較,您應該在PDF查看器中具有100%的縮放級別。如果您要使用PDF格式的高分辨率圖片而不是HTML格式的圖片,您可以在Replace Images from HTML with Higher Quality Images in PDF Demo中看到。該演示的相關C#代碼是:
protected void convertToPdfButton_Click(object sender, EventArgs e)
{
// Create a HTML to PDF converter object with default settings
HtmlToPdfConverter htmlToPdfConverter = new HtmlToPdfConverter();
// Set license key received after purchase to use the converter in licensed mode
// Leave it not set to use the converter in demo mode
htmlToPdfConverter.LicenseKey = "fvDh8eDx4fHg4P/h8eLg/+Dj/+jo6Og=";
// Select all images from HTML page
htmlToPdfConverter.HtmlElementsMappingOptions.HtmlElementSelectors = new string[] { "img" };
// Exclude the original images from rendering becuase they will be replaced by an image from local file system
htmlToPdfConverter.HiddenHtmlElementsSelectors = new string[] { "img" };
Document pdfDocument = null;
try
{
// Convert a HTML string with images to replace to a PDF document object
pdfDocument = htmlToPdfConverter.ConvertUrlToPdfDocumentObject(urlTextBox.Text);
// Replace the images selected in HTML using special attributes with images from local file system
foreach (HtmlElementMapping imageElementInfo in htmlToPdfConverter.HtmlElementsMappingOptions.HtmlElementsMappingResult)
{
PdfPage imagePdfPage = imageElementInfo.PdfRectangles[0].PdfPage;
RectangleF imageRectangle = imageElementInfo.PdfRectangles[0].Rectangle;
ImageElement newImageElement = new ImageElement(imageRectangle.X, imageRectangle.Y, imageRectangle.Width, imageRectangle.Height,
Server.MapPath("~/DemoAppFiles/Input/Images/box.jpg"));
newImageElement.EnlargeEnabled = true;
imagePdfPage.AddElement(newImageElement);
}
// Save the PDF document in a memory buffer
byte[] outPdfBuffer = pdfDocument.Save();
// Send the PDF as response to browser
// Set response content type
Response.AddHeader("Content-Type", "application/pdf");
// Instruct the browser to open the PDF file as an attachment or inline
Response.AddHeader("Content-Disposition", String.Format("attachment; filename=Replace_with_Higher_Quality_Images.pdf; size={0}", outPdfBuffer.Length.ToString()));
// Write the PDF document buffer to HTTP response
Response.BinaryWrite(outPdfBuffer);
// End the HTTP response and stop the current page processing
Response.End();
}
finally
{
// Close the PDF document
if (pdfDocument != null)
pdfDocument.Close();
}
}
是否有他們必須爲PDF的原因?你不能只是創建一個圖像文件下載? – musefan