我在使用EVOPdf将PDF 从WebAPI控制器渲染到AngularJS应用时遇到问题。
到目前为止,这是我的代码:
角度通话:
var url = 'api/form/build/' + id;
$http.get(url, null, { responseType: 'arraybuffer' })
.success(function (data) {
var file = new Blob([data], { type: 'application/pdf' });
if (window.navigator && window.navigator.msSaveOrOpenBlob) {
window.navigator.msSaveOrOpenBlob(file);
}
else {
var objectUrl = URL.createObjectURL(file);
window.open(objectUrl);
}
});
Run Code Online (Sandbox Code Playgroud)
APIController方法:
var url = "http://localhost/index.html#/form/build/" + id;
#region PDF Document Setup
HtmlToPdfConverter htmlToPdfConverter = new HtmlToPdfConverter();
htmlToPdfConverter.LicenseKey = "4W9+bn19bn5ue2B+bn1/YH98YHd3d3c=";
//htmlToPdfConverter.HtmlViewerWidth = 1024; //default
htmlToPdfConverter.PdfDocumentOptions.PdfPageSize = PdfPageSize.A4;
htmlToPdfConverter.PdfDocumentOptions.PdfPageOrientation = PdfPageOrientation.Portrait;
htmlToPdfConverter.ConversionDelay …Run Code Online (Sandbox Code Playgroud) 我想在我的asp.net应用程序上集成evoPDF.我通过ajax从我的html文件中发送部分html.一切都有效,直到这一部分.现在,当我从EvoPdf API调用这些方法时.
1. GetPdfBytesFromHtmlStream(Stream, Encoding,urlbase)
2. SavePdfFromHtmlStringToFile(String html,string filename,urlbase)
Run Code Online (Sandbox Code Playgroud)
我发送的html块就像是
<ol class = "lol">
<li> HEY </li>
<li> Now </li>
</ol>
Run Code Online (Sandbox Code Playgroud)
外部文件中的Css就像
.lol {
background-color: red;
}
Run Code Online (Sandbox Code Playgroud)
根据文档,第三个参数必须是原始Html的完整URL,你提取html的大块.我上传了我的应用程序,因为尝试localhost/3232不起作用.但是,我看不到在生成的Html中应用任何CSS.在文档中,他们还建议追加
<HEAD> <BASE HREF="full url to your html file"> </HEAD>
Run Code Online (Sandbox Code Playgroud)
并且,使用此方法.
pdfConverter.GetPdfBytesFromHtmlString(String html);
Run Code Online (Sandbox Code Playgroud)
我上面尝试的任何内容都不适用CSS.有什么想法吗....
EvoPDF HTML到PDF转换库(http://www.evopdf.com/)声称它支持Windows Azure云平台,但是我无法让它工作.我得到了例外:
[Exception: Could not get conversion result header. Data receive error. Could not receive data. Error code: 109]
EvoPdf.HtmlToPdf.ImgConverter.GetLayoutFromUrl(String url, ps& htmlParseInfo) +622
EvoPdf.HtmlToPdf.PdfConverter.ConvertAndGetPdfDocument(String url, String htmlString, String baseUrl, String internalLinksDocUrl, Boolean fromUrl) +9748
EvoPdf.HtmlToPdf.PdfConverter.ConvertAndSaveToStream(Stream outStream, String url, String htmlString, String baseUrl, String internalLinksDocUrl, Boolean fromUrl) +61
EvoPdf.HtmlToPdf.PdfConverter.SavePdfFromUrlToStream(String url, Stream outPdfStream) +20
Run Code Online (Sandbox Code Playgroud)
这看起来像是在图书馆通过网络请求获取HTML内容时失败了.Azure中是否存在阻止传出Web请求的内容?
该库被部署为两个DLL,一个本机DLL和一个托管程序集 - 是否需要任何特殊的Azure配置才能加载本机DLL?(该库确实支持xcopy部署,我在其他托管环境中以这种方式工作).
我知道可以使用C#API在页眉/页脚中呈现“ Y的第X页”:
//write the page number
TextElement footerText = new TextElement(0, pdfConverter.PdfFooterOptions.FooterHeight - 15, "This is page &p; of &P; ",
new System.Drawing.Font(new System.Drawing.FontFamily("Times New Roman"), 10, System.Drawing.GraphicsUnit.Point));
footerText.EmbedSysFont = true;
footerText.TextAlign = HorizontalTextAlign.Right;
pdfConverter.PdfFooterOptions.AddElement(footerText);
Run Code Online (Sandbox Code Playgroud)
..但是我宁愿使用以下命令直接在html中定位和设置样式:
HtmlToPdfElement footerHtml = new HtmlToPdfElement(pdfOptions.DocumentFooterHtmlString, pdfOptions.BaseUrl);
footerHtml.FitHeight = true;
pdfConverter.PdfFooterOptions.AddElement(footerHtml);
Run Code Online (Sandbox Code Playgroud)
pdfOptions.DocumentFooterHtmlString看起来像这样:
<div class="clearfix">
<span class="pull-right">This is page &p; of &P;</span>
</div>
Run Code Online (Sandbox Code Playgroud)
这有可能吗?如果我尝试这样做,我将得到:这是&p;页面 &P; 在页脚中呈现。
我正在尝试使用evoPDF dll将URL转换为pdf.这在我在本地计算机上执行时运行正常,但每次在IIS服务器上托管时都会失败.错误如下.
加载HTML错误或导航超时.
任何建议都将受到高度赞赏,这可能是造成这种失败的原因.
我正在尝试使用 evopdf 将 html 转换为 pdf,在我的 html 中,有一个带有绝对路径的图像,但图像无法将其加载到 pdf.here 中,“sb”是字符串生成器,我在其中附加了 html 字符串。
PdfConverter pdf = new PdfConverter();
byte[] outPdfBuffer = pdf.GetPdfBytesFromHtmlString(sb.ToString());
HttpContext.Current.Response.BinaryWrite(outPdfBuffer);
HttpContext.Current.Response.End();
Run Code Online (Sandbox Code Playgroud)
由于我给出了完整路径,我没有给出基本 url,这是我的 html 图像:
<img src="C:/Users/ingyadav/Desktop/icons/icons/logo_160.png" alt="Symphony Summit"/>
Run Code Online (Sandbox Code Playgroud)
谁可以帮我这个事