一部の HTML ページを PDF にレンダリングするために、ABCpdf バージョン 5 を使用しています。
私は基本的に使用HttpServerUtility.Execute()
します-pdfのhtmlを取得するためのメソッド:
System.IO.StringWriter writer = new System.IO.StringWriter();
server.Execute(requestUrl, writer);
string pageResult = writer.ToString();
WebSupergoo.ABCpdf5.Doc pdfDoc = new WebSupergoo.ABCpdf5.Doc();
pdfDoc.AddImageHtml(pageResult);
response.Buffer = false;
response.ContentType = "application/pdf";
response.AddHeader("Content-Disposition", "attachment;filename=MyPdf_" +
FormatDate(DateTime.Now, "yyyy-MM-dd") + ".pdf");
response.BinaryWrite(pdfDoc.GetData());
現在、ウムラウテ (äöü) などの一部の特殊文字は空白に置き換えられています。興味深いことに、それらのすべてではありません。私が理解したこと:私が持っているhtmlページ内。
`<meta http-equiv="content-type" content="text/xhtml; charset=utf-8" />`
これを解析すると、すべての特殊文字が正しくレンダリングされます。しかし、これは醜いハックのように思えます。
以前は を使用しませんでしHttpServerUtility.Execute()
たが、ABCpdf に URL 自体を呼び出させました: pdfDoc.AddImageUrl("someUrl");
. そこでは、そのようなエンコーディングの問題はありませんでした。
他に何を試すことができますか?