HTML 以字符串形式到达。PDF 生成开始,随后网络异常提到代理认证。在责怪 PDF 文件之前,先查看文档内部。

渲染器可以解析其输入引用的资源。远程图片、样式表、字体或受支持的导入会引入另一个请求。支持哪些资源类型取决于渲染器;提供主标记并不保证完全离线转换。

定位第二个 URL

记录渲染器失败时正在获取的资源。相对于实际基础 URL 解析相对引用。当该基础 URL 与浏览器预览中使用的基础 URL 不同时,看似无害的 logo 路径可能指向应用之外。

然后识别下载器。你自己的 HTTP 客户端发出的成功请求并不会配置渲染器的内部资源获取。如果渲染器提供文档化的资源接口或经批准的预取方案,请使用它。

源应用的凭据也不会自动成为代理凭据。渲染器可能在其他环境和网络路径下以服务身份运行。

让依赖显式化

对于需要在离线状态下工作的报表,请通过受支持的机制提供经批准的本地或嵌入资源。如果需要远程资源,请将其允许的目标、认证和失败行为纳入渲染设计。

缺少 logo 和转换失败是两种不同的可能结果。不要仅仅因为生成了 PDF 文件就宣布报表完成,而应检查库如何处理获取错误。将失败的资源和请求阶段保留在诊断信息中;反复更改原始文档的 URL 可能让实际下载不受影响。

相关文章