我在使用不同的系统之前创建了一组 PDF 文件。这些样式正确,(使用 Arial 字体、粗体和普通字体)- PDF 包含瑞典语字符,并且在我打印时一切正常。但是,我一直在研究一种不向用户显示 pdf 文件本身的解决方案,只需启动打印对话框即可。我已经使用 iTextSharp 包含 JS 代码,一旦启动就会自动打印 PDF。
将 JS 添加到提供的文件并将其发送给用户的方法:
protected void StreamPdf(string pdfSource)
{
var outputStream = new MemoryStream();
var pdfReader = new PdfReader(pdfSource);
var pdfStamper = new PdfStamper(pdfReader, outputStream);
//Add the auto-print javascript
var writer = pdfStamper.Writer;
writer.AddJavaScript(GetAutoPrintJs());
pdfStamper.Close();
var content = outputStream.ToArray();
outputStream.Close();
Response.ContentType = "application/pdf";
Response.BinaryWrite(content);
Response.End();
outputStream.Close();
outputStream.Dispose();
}
现在的问题是 - 在使用响应写回文件后,我失去了格式 - 以前粗体的文本是正常的,并且区域字符丢失(改为显示空方块)。
有没有可能保留格式?