5
A
回答
5
如果你正在寻找渲染视图模板为PDF文档,请this module 。
0
还有一个apache fop插件,它可以从fop文件中创建pdf。
fop文件不是最直观的文件,但最终我总是找到一种方法来格式化复杂的PDF我想要的方式。
将插件添加到您的播放应用程序添加这build.sbt:
"org.apache.avalon.framework" % "avalon-framework-api" % "4.2.0" from "http://repo1.maven.org/maven2/avalon-framework/avalon-framework-api/4.2.0/avalon-framework-api-4.2.0.jar",
"org.apache.avalon.framework" % "avalon-framework-impl" % "4.2.0" from "http://repo1.maven.org/maven2/avalon-framework/avalon-framework-impl/4.2.0/avalon-framework-impl-4.2.0.jar",
"org.apache.xmlgraphics" % "fop" % "1.1"
这是我的函数来创建从FOP串PDF文件:
private static FopFactory fopFactory = FopFactory.newInstance();
/**
* Wrote according to this example :
* http://xmlgraphics.apache.org/fop/1.1/embedding.html#examples
* @param outputPath Path to the file to create (must end by .pdf).
* @param foString Description of the pdf document to render.
* http://www.w3schools.com/xslfo/default.asp
* @return the output path.
*/
public static String toPdf(String outputPath, String foString)
{
OutputStream out;
try {
File fileOutput = new File(outputPath);
out = new BufferedOutputStream(new FileOutputStream(fileOutput));
} catch (FileNotFoundException e) {
Logger.error("InvoicePdf.invoiceToPdf: " + e.getMessage());
return null;
}
try {
Fop fop = fopFactory.newFop(MimeConstants.MIME_PDF, out);
TransformerFactory factory = TransformerFactory.newInstance();
Transformer transformer = factory.newTransformer();
Source src = new StreamSource(new StringReader(foString));
Result res = new SAXResult(fop.getDefaultHandler());
transformer.transform(src, res);
}catch (Throwable e){
Logger.error("InvoicePdf.invoiceToPdf: " + e.getMessage());
e.printStackTrace();
return null;
} finally {
try {
out.close();
} catch (Throwable e) {
Logger.error("InvoicePdf.invoiceToPdf: " + e.getMessage());
}
}
return outputPath;
}
0
使用时玩scala可以使用scala库https://github.com/cloudify/sPDF。
然后在您的播放2.X控制器可以将渲染PDF文件使用下面的代码:
import io.github.cloudify.scala.spdf.{Pdf, PdfConfig, Portrait}
def yourAction = Action { implicit request =>
val pdf = Pdf(
executablePath = "/usr/bin/wkhtmltopdfPath",
config = new PdfConfig {
orientation := Portrait
pageSize := "A4"
marginTop := "0.5in"
marginBottom := "0.5in"
marginLeft := "0.5in"
marginRight := "0.5in"
printMediaType := Some(true)
}
)
val outputStream = new ByteArrayOutputStream
pdf.run(
sourceDocument = views.html.yourTemplate().toString(),
destinationDocument = outputStream
)
Ok(outputStream.toByteArray).as("application/pdf")
}
相关问题
- 1. Play Framework 2 HornetQ
- 2. Play Framework 2 slugify
- 3. SoundPool play()块渲染
- 4. SecureSocial 2 with play 2 framework
- 5. 使用Scala从Play Framework渲染内联HTML?
- 6. JSON渲染Scala/Play 2.1
- 7. Objective-c PDF渲染
- 8. 渲染多页PDF
- 9. Play Framework:使用PDF模块渲染PDF使呼叫生成动态图像每个3次
- 10. 的PDF渲染器类没有在Android上渲染PDF SDK 21
- 11. Zend Framework:缓存渲染
- 12. Scala插件for play framework 2
- 13. RedHat的Play Framework 2新贵
- 14. Zend Framework将条形码渲染为PDF页面
- 15. 在iOS中渲染PDF
- 16. 在黑莓上渲染PDF?
- 17. 使用wpf渲染pdf
- 18. JsDoc到PDF渲染器
- 19. 用laravel渲染pdf文件
- 20. PDF石英渲染质量
- 21. Android中的PDF渲染
- 22. 需要与PDF渲染器
- 23. 使用javascript渲染pdf
- 24. jasperreport渲染为空pdf
- 25. Java PDF操作和渲染
- 26. 渲染PDF查看Grails的
- 27. Zend Framework 2模块索引内容没有渲染
- 28. 使用JVM Nashorn(Play Framework)渲染React.js时出错。我得到“null不是函数”
- 29. 尝试渲染PDF时Grails渲染插件错误?
- 30. Zend Framework中的错误渲染
是的,我一直在寻找。我会检查出:) – zeal 2013-04-24 14:56:07
它不再被支持。有一个想法来取代这个模块? – Moebius 2014-09-08 14:31:49
Hi @Moebius,我们对2.3.x兼容性做了一个fork https://github.com/innoveit/play2-pdf – MaFo 2014-12-15 09:10:57