我们目前正在使用Alpaca Forms生成表单,我们用它来编辑存储在json中的数据以用于我们的应用程序。我们现在正在寻找一种方法,服务器端,生成PDF文档,使用json-schema和json。
理想情况下,这将使用C#,但坦率地说,我们真的可以使用任何语言,只要我们可以将它放在Web服务之后。
基本上,它将是羊驼,但输出将是PDF报告,其中可能包含封面和其他文档友好功能。它还会使用"标题"和"描述"来自json-schema的字段。
除了尝试推广自己的想法以外的任何想法?我不是不是PDF库,因为大多数似乎都不是面向文档的。
答案 0 :(得分:0)
wkhtmltopdf是我个人最喜欢的方式。您应该能够将JSON模式转换为HTML,然后通过它进行渲染。
答案 1 :(得分:0)
如果您使用的是Node:您可以使用Chromium的(Opensource Chrome浏览器)Puppeteer来启动无头浏览器,服务器端,它可以生成PDF。
const puppeteer = require('puppeteer');
const browser = await puppeteer.launch({headless: true});
const page = await browser.newPage();
page.setContent('<h1>My PDF!</h1>');
const myPdf = page.pdf();
从Puppeteer
生成时,请参阅https://github.com/GoogleChrome/puppeteer/blob/master/docs/api.md#pagepdfoptions了解更多PDF选项我还没有对上面的代码进行测试,但这是我用来生成PDF的基础知识
npm i puppeteer
将需要:)
答案 2 :(得分:0)
将Alpaca Forms JSON自动转换为以您想要的方式布局页面的内容可能很困难(不可能?)。例如,羊驼JSON是否提供足够的信息来确定页面大小,方向,页眉,页脚,编号位置和样式等?
Docmosis可能对您有用(请注意我为Docmosis工作)。您可以在文字处理器文档中布局PDF并调用Docmosis将其与JSON数据合并以创建PDF。模板中的字段可以驱动数据提取,因此您可以将&lt;&gt;进入模板,标题将从JSON中提取。在羊驼的情况下,看起来标题可能被键入&#34; schema&#34;在JSON中,所以你会使用&lt;&gt;在Docmosis模板中。页面布局和样式来自模板。将此作为候选解决方案进行测试的最快方法是创建云帐户,上传模板并使用JSON调用REST API以创建文档。如果这样做你需要你有云或内部部署选项。
我希望有所帮助。