ABCpdf를 사용하여 HTML 페이지를 PDF로 내보내려고합니다. 텍스트는 OK로 변환되지만 차트는 매우 흐릿합니다. 글꼴 크기를 늘리려고했는데 거의 도움이되지 않습니다. 해결책은 무엇일까요?abcpdf가있는 흐릿한 차트
편집 : 도움이된다면 asp.net 차트를 사용하고 있습니다.
ABCpdf를 사용하여 HTML 페이지를 PDF로 내보내려고합니다. 텍스트는 OK로 변환되지만 차트는 매우 흐릿합니다. 글꼴 크기를 늘리려고했는데 거의 도움이되지 않습니다. 해결책은 무엇일까요?abcpdf가있는 흐릿한 차트
편집 : 도움이된다면 asp.net 차트를 사용하고 있습니다.
더 높은 DPI로 차트를 출력해야합니다. 비록 abcpdf로 이것을 할 수 있는지 잘 모르겠다.
채팅 내용이 이미지라고 가정합니다. 그렇다면 흐림의 원인은 HTML 이미지의 DPI가 72 DPI이고 렌더링 된 PDF의 DPI가 300 DPI입니다.
내가 알고있는 유일한 방법은 HTML의 이미지를 훨씬 높은 해상도 (300 DPI)로 설정 한 다음 페이지의 높이와 너비로 크기를 줄이는 것입니다. ABCPdf가 이미지를 가져올 때 소스를 다운로드하고 훨씬 더 멋지게 보입니다.
다른 답변은 올바른 경로에 있지만 실제로는 없습니다.
"보통"브라우저는 96 DPI에있는 것을 표시합니다. 이는 설정에 따라 다르지만 여기서 가정하는 것이 안전합니다. PDF는 72 DPI로 확장 될 예정입니다. 따라서 Rect를 브라우저 너비의 3/4으로 설정해야합니다. 그러면 이미지가 올바르게 보입니다.
부작용으로 원하는 크기를 얻으려면 더 높은 해상도의 이미지가 필요합니다. 이미지의 해상도를 역으로 늘릴 수 있습니다 (예 : 4/3의 비율로 패리티를 얻음). 브라우저에서 볼 수있는 것).
아래 코드를 사용하면 이미지가 흐려지지 않습니다 (예 : 예상되는 문서 너비를 조정해야하지만 폭이 612pt @ 72 DPI (예 : 레터 크기의 세로 방향)의 PDF를 백업해야합니다 브라우저 너비는 816px @ 96DPI) :
const Double pdfDpi = 72;
const Double browserDpi = 96;
var browserToPdfDpiRatio = BrowserDpi/PdfDpi;
pdf.HtmlOptions.BrowserWidth = (Int32)Math.Round(pdf.Rect.Width * browserToPdfDpiRatio, 0);
그게 도움이되지 않는 것 같아서 이미 시도해 봤습니다. – Iceman