Hai*_*ang 8 pdf canvas html5-canvas jspdf angular
再次感谢所有评论/回答我问题的人
问题解决了: 我无法在生成的PDF上使画布图像看起来更好,项目的截止日期正在结束,最后,我决定将"PDF报告"功能从前端(Angular)移动到后端(python),我已经发布了一个答案(不是我自己的问题的答案,但更像是一个解决方案)
我已将Chart.js替换为Echarts,但模糊的问题仍然存在.我在网上搜索jsPDF和Canvas模糊了很多,看起来画布设置需要自定义,不幸的是,我不知道如何实现它.
我有一个Angular项目,需要下载图表数据的PDF.我选择了Chart.js和jspdf,效果很好.当我在一个页面中打印2个图表时,分辨率是可以的,但是当我尝试在同一页面上打印3个图表时,文本模糊.我已经阅读了这个类似的问题,但没有想出如何在拥有多个图表时更好地解决问题.
HTML代码:
<div class="col-md-4">
<div class="card card-chart">
<div class="card-header">
<h5 class="card-title">Cervical Lateral Flexion</h5>
<!--<p class="card-category">Line Chart</p>-->
</div>
<div class="card-body">
<canvas id="cervicalLateralFlexion"></canvas>
</div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
打字稿代码:
public static buildChart(doc, selector, title, yHeight) {
let height = yHeight;
const canvas = document.querySelector(selector) as HTMLCanvasElement;
doc.setFontSize(h5);
doc.text(leftMargin, yHeight, title);
const canvasImage = canvas.toDataURL('image/png');
height += margin;
doc.addImage(canvasImage, 'PNG', leftMargin, height);
}
Run Code Online (Sandbox Code Playgroud)
有人可以帮忙吗?如何解决这个问题?提前致谢!图1是它在网页上的样子,图像2是PDF文件.
2020 年 5 月 10 日更新 我录制了几个关于如何使用 Weasyprint 和 Plotly 构建 PDF 报告的视频,您可以在这里找到详细信息:https ://www.youtube.com/watch?v=hjWTCYPy7oU&t=1s
2020年2月3日更新:
我发现Plotly导出静态图像时真的很神奇,强烈推荐。查看我构建的图像,您可以将其与我原来的问题帖子图像进行比较:
有几个特点:
2019年原帖:
感谢所有回答我问题的人,我真的很感谢你们的帮助, 我在 jsPDF + Chart.js 上花了两周多的时间,但仍然不知道如何正确打印带有画布图像的 PDF。
这个项目是新的,语言/工具/依赖项不受限制。为了按时完成项目,我将 PDF 报告从前端(Angular)切换到后端(Python)。现在我花了两天时间才完成PDF。
我用来生成 PDF 报告和图表的来源:
非常感谢Weasyprint使使用 HTML 和 CSS 生成 PDF 文档变得高效!这是我生成的 PDF:
| 归档时间: |
|
| 查看次数: |
887 次 |
| 最近记录: |