Ghostscript GPL vs IronPDF: 기술 비교 가이드
HTML에서 PDF를 생성하는 Enterprise 애플리케이션은 종종 인터넷으로의 직접 경로가 없는 제한된 네트워크 내에서 실행됩니다. 문제는 렌더링 시간에 발생합니다: 송장 또는 보고서 템플릿이 외부 CDN에 호스팅된 로고, 웹 글꼴 또는 스타일시트를 참조하며, 회사 네트워크 내부에서는 이러한 요청이 조용히 실패합니다. 문서는 스타일이 지정되지 않은 상태로 나오며, 이미지가 끊기고 글꼴이 누락됩니다. 렌더링 엔진을 회사 프록시를 통해 라우팅하면 이 문제가 해결되며, IronPDF는 프록시를 렌더 호출에 직접 허용합니다.
비즈니스 문제
금융, 의료, 또는 보험 앱은 웹 템플릿에서 클라이언트 문서를 생성합니다. 이러한 템플릿은 외부 자산을 가져오지만 서버는 방화벽과 프록시 뒤에 있습니다. 프록시 구성이 없으면 엔진이 자산에 접근할 수 없어 결과물이 깨져 보입니다. 이러한 환경 중 다수는 인증된 프록시도 실행하며, 이로 인해 자격 증명 요구사항이 추가됩니다.
해결책
프록시는 렌더 옵션의 속성이 아닌, RenderHtmlAsPdf 메소드의 매개변수입니다. 프록시 문자열을 전달하면 엔진으로부터의 모든 자산 요청이 해당 프록시를 통해 라우팅됩니다.
using IronPdf;
var renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf(
htmlContent,
baseUrlOrPath: @"C:\templates\assets\",
proxy: "http://proxy.co/rp.local:8080"
);
pdf.SaveAs("report.pdf");
인증된 프록시의 경우, 자격 증명은 프록시 URL에 포함됩니다. 비밀번호의 특수 문자는 퍼센트 인코딩해야 합니다.
string encoded = Uri.EscapeDataString("P@ssw0rd!");
string proxy = $"http://svc-account:{encoded}@proxy.co/rp.local:8080";
PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlContent, baseUrlOrPath: null, proxy: proxy);
프록시 뒤의 내부 URL 렌더링
URL 렌더 메소드는 프록시 매개변수를 허용하지 않습니다. 실질적인 패턴은 프록시에 맞게 구성된 HttpClient으로 HTML을 가져온 다음, 해당 HTML을 렌더링하여 참조된 자산도 프록시를 통해 라우팅되도록 하는 것입니다.
using System.Net;
using System.Net.Http;
var webProxy = new WebProxy("http://proxy.co/rp.local:8080")
{
Credentials = new NetworkCredential("svc-account", "P@ssw0rd!")
};
var handler = new HttpClientHandler { Proxy = webProxy, UseProxy = true };
using var httpClient = new HttpClient(handler);
string html = await httpClient.GetStringAsync("https://dashboard.internal.co/rp/report");
PdfDocument pdf = renderer.RenderHtmlAsPdf(html, baseUrlOrPath: null, proxy: "http://proxy.co/rp.local:8080");
계획할 고려 사항
- 프록시 인증은 페이지 인증이 아닙니다: 프록시 URL의 자격 증명은 프록시와 관련된 인증을 하며, 이는 웹사이트 로그인 자격 증명과 다릅니다.
- 스킴은 프록시 홉을 나타냅니다:
http://프록시는 여전히https://리소스를 가져올 수 있어, 스킴 선택은 앱과 프록시 간 연결에 TLS가 필요한지에 대한 것입니다. - 컨테이너와 파이프라인: Docker 배포 및 CI 빌드 에이전트는 대개 출구가 없기 때문에 동일한 프록시 구성이 적용됩니다.
결과
하나의 매개변수를 통해 팀은 인증된 환경과 컨테이너를 포함하여 회사 프록시 뒤에서 실행되는 애플리케이션에서 완전한 스타일링과 브랜딩이 된 PDF를 얻습니다. 전체 구성 세부 사항은 프록시 가이드에 있습니다.

커티스 차우는 칼턴 대학교에서 컴퓨터 과학 학사 학위를 취득했으며, Node.js, TypeScript, JavaScript, React를 전문으로 하는 프론트엔드 개발자입니다. 직관적이고 미적으로 뛰어난 사용자 인터페이스를 만드는 데 열정을 가진 그는 최신 프레임워크를 활용하고, 잘 구성되고 시각적으로 매력적인 매뉴얼을 제작하는 것을 즐깁니다.