2014-08-14 2 views
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 실행

아무도 도와 줄 수 있습니까?

답변

0

스테이징 환경과 프로덕션 환경에서 CSS 및 이미지가 저장된 사이트가 올바른 DNS 설정을 가지고 있지 않은 것으로 나타났습니다.

DNS 설정을 조정했는데 이제 작동합니다.

관련 문제