2014-03-19 2 views
0

나는 AbcPdf을 사용하고 있으며 Alpha/Opacity 스타일을 사용하려면 스타일을 사용하는 것이 어려우 니 .AddImageHtml() 메서드에서 렌더링되었습니다.AbcPdf Opacity AddImageHtml

내에서 pdf를 생성하므로 스타일 시트로 추가해야합니다.

일부 이미지에는 불투명도가 있지만 전부는 아니기 때문에 불투명도가 스타일 시트 인 이미지에만 불투명도을 넣어야합니다.

내가 사용 AbcPdf 버전입니다 8.1.1.5

샘플 코드

[HttpPost] 
    [ValidateInput(false)] 
    public virtual ActionResult GeneratePDF(string pdf) 
    { 
     Doc theDoc = new Doc(); 

     theDoc.AddImageHtml(pdf); 
     theDoc.Rect.Inset(20, 20); 
     string pathForSaving = Server.MapPath("~/Uploads"); 
     theDoc.Save(Path.Combine(pathForSaving, "htmlimport.pdf")); 
     theDoc.Clear(); 

     return Json(new { }, "text/html"); 
    } 

[업데이트]]

난 여전히 문제를 가지고,하지만 난 내 이미지에 투명도를 적용하고

업로드하기 전에. 즉, 내 이미지가 불투명하게 저장되었습니다.

불투명도를 적용해도 렌더링 된 이미지에는 불투명도가 없습니다. (내 Upload 폴더를 확인했는데 저장된 이미지에 불투명도가 있음)

여기 무슨 일입니까?

[/ 업데이트 됨]

도움이 되겠습니다.

감사합니다.

+0

어떤 버전의 ABCPdf를 사용하고 있습니까? 또한 샘플 HTML을 제공하십시오./ – malkassem

+0

@malkassem 질문을 업데이트했습니다. –

답변

0

나타나는 동작에는 여러 가지 이유가있을 수 있습니다.

옵션 1

페이지에 사용되는 CSS는이 AddImageHtml에 전달되지 않습니다. 의미는 pdf 변수에는 CSS가 없습니다. CSS를 스타일 태그의 html에 추가하여이 문제를 해결할 수 있습니다. 예 :

pdf += @"<style> your css code</style>"; 

옵션 2

서버에서 IE의 버전은 IE8이며 IE8에서 지원하지 않는 CSS는 불투명도] 속성을 사용하고 있습니다. 이 문제를 해결하려면

a. Gecko 엔진에이 줄을 추가하여 사용하십시오.

doc.HtmlOptions.Engine = WebSupergoo.ABCpdf9.EngineType.Gecko; 

b. IE9로 서버의 IE를 업그레이드하십시오.

c. CSS를 IE8과 호환되도록 변경하십시오. 이 스레드를 확인하십시오 Opacity CSS not working in IE8

+0

여전히 작동하지 않습니다. =/ 필자의 스타일 시트를 인라인으로 처리했습니다. –

+0

@ HugoS.Mendes 옵션 2는 어떨까요? 또한 샘플 HTML을 제공 할 수 있습니까? – malkassem

0

이것은 답변이 아니지만보다 쉽게 ​​검증 할 수있는 예제로 질문에 추가하는 것입니다. 이미지가 있어야하는 곳에 두 개의 회색 상자가 생깁니다. 나는 ABCPdf 9.1을 사용하고있다.

Doc docPDF = new Doc(); 

docPDF.HtmlOptions.Engine = EngineType.Gecko; 
docPDF.HtmlOptions.ForGecko.RequestMethod = UrlRequestMethodType.Get; 
//docPDF.HtmlOptions.ForGecko.Media = MediaType.Screen; 
docPDF.HtmlOptions.ForGecko.UseScript = true; 
docPDF.HtmlOptions.ForGecko.OnLoadScript = 
    "window.ABCpdf_go = false; " + 
    "setTimeout(function() {window.ABCpdf_go = true;}, 5000);"; 

docPDF.AddImageUrl("http://www.w3schools.com/css/tryit.asp?filename=trycss_image_transparency"); 
docPDF.Save(@".\out.pdf"); 
+0

OnLoadScript는 어떤 기능을합니까? –

+0

웹 페이지를 PDF로 복사하기 전에 실행할 JavaScript 코드를 제공합니다. 이 경우 페이지가 완전히 렌더링 될 때까지 기다리는 것입니다. 자세한 내용은 http://www.websupergoo.com/helppdfnet/source/5-abcpdf/xhtmloptions/2-properties/onloadscript.htm을 참조하십시오. – elyuro