2
CSS가 적용되지 않고 이미지가 PDF로 렌더링되지 않는 것이 문제입니다. 이 작업은 준비 및 프로덕션 환경에서만 발생합니다. 내 개발 환경에서 문제를 다시 만들 수 없습니다.이미지를 렌더링하지 않거나 CSS를 적용하지 않는 ABCpdf
둘 다 https에 속합니다. 이미지 및 CSS 파일에 대한 링크는 http입니다. 따라서 https를 사용하여 개발 환경을 변경하여 이것이 문제인지 확인했습니다. 그것은 아무런 효과가 없었습니다.
Doc theDoc = new Doc();
theDoc.HtmlOptions.Engine = EngineType.Gecko;
theDoc.HtmlOptions.UseScript = true;
theDoc.HtmlOptions.Media = MediaType.Screen;
theDoc.HtmlOptions.AutoTruncate = true;
XHtmlOptions.GeckoSubsetType options = theDoc.HtmlOptions.GeckoSubset;
options.AddLinks = true;
//Write the CSS to PDF
StringBuilder coreCssBuilder = new StringBuilder();
StringWriter coreCssWriter = new StringWriter(coreCssBuilder);
HtmlTextWriter coreCssHtmlWriter = new HtmlTextWriter(coreCssWriter);
lnkCoreCss.RenderControl(coreCssHtmlWriter);
String coreCssHtml = coreCssBuilder.ToString().Replace("href=\"..", "href=\"http://example.com");
StringBuilder testTranscriptCssBuilder = new StringBuilder();
StringWriter testTranscriptCssWriter = new StringWriter(testTranscriptCssBuilder);
HtmlTextWriter testTranscriptCssHtmlWriter = new HtmlTextWriter(testTranscriptCssWriter);
lnkTestTranscriptCss.RenderControl(testTranscriptCssHtmlWriter);
String testTranscriptCssHtml = testTranscriptCssBuilder.ToString().Replace("href=\"..", "href=\"http://example.com");
StringBuilder templateTableCssBuilder = new StringBuilder();
StringWriter templateTableCssWriter = new StringWriter(templateTableCssBuilder);
HtmlTextWriter templateTableCssHtmlWriter = new HtmlTextWriter(templateTableCssWriter);
lnkTemplateTableCss.RenderControl(templateTableCssHtmlWriter);
String templateTableCssHtml = templateTableCssBuilder.ToString().Replace("href=\"..", "href=\"http://example.com");
StringBuilder extraCssBuilder = new StringBuilder();
StringWriter extraCssWriter = new StringWriter(extraCssBuilder);
HtmlTextWriter extraCssHtmlWriter = new HtmlTextWriter(extraCssWriter);
styleExtraCss.RenderControl(extraCssHtmlWriter);
String extraCssHtml = extraCssBuilder.ToString().Replace("</style>", ".BorderCell {border: none;}</style>");
StringBuilder transcriptBuilder = new StringBuilder();
StringWriter transcriptWriter = new StringWriter(transcriptBuilder);
HtmlTextWriter transcriptHtmlWriter = new HtmlTextWriter(transcriptWriter);
pnlTranscript.RenderControl(transcriptHtmlWriter);
//Add the transcript html to the PDF
String transcriptHtml = transcriptBuilder.ToString()
.Replace("src=\"/", "src=\"http://example.com/")
.Replace("src=\"../", "src=\"http://example.com/");
//Add the page CSS to the PDF
transcriptHtml = coreCssHtml + testTranscriptCssHtml + templateTableCssHtml + extraCssHtml + transcriptHtml;
int pageId = theDoc.AddImageHtml(transcriptHtml);
while (true)
{
if (!theDoc.Chainable(pageId))
break;
theDoc.Page = theDoc.AddPage();
pageId = theDoc.AddImageToChain(pageId);
}
//Flatten pages
for (int i = 1; i <= theDoc.PageCount; i++)
{
theDoc.PageNumber = i;
theDoc.Flatten();
}
return theDoc;
더 많은 정보
- ABCpdf :
이
는 HTML에서 PDF를 렌더링 내가 자리에있는 코드 (나는 그것의 아주 오래된 코드를 작성하지 않은)입니다 .NET 버전 8.1 x64 - Windows Server 2012 R2에서 IIS 8.5를 실행하는 준비 및 프로덕션 환경
- 개발 환경 IIS 7.5 실행
아무도 도와 줄 수 있습니까?