Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Itext 从web/xpages打印附件_Itext_Xpages - Fatal编程技术网

Itext 从web/xpages打印附件

Itext 从web/xpages打印附件,itext,xpages,Itext,Xpages,在我的应用程序中,我需要有一个打印功能,可以将Notes视图中的文档(可以是图像、pdf、office文档)打印为单个有序文件 通过一个非邪恶的伪装搜索引擎,我发现iText支持许多功能,包括合并pdf、转换为pdf和阅读流 我不确定我的内部仅使用的应用程序是否属于AGPL许可证 我还关心其他替代方案,它们允许我合并pdf、文档转换和包含图像 欢迎使用java代理、ssjs和java的任何示例代码。POI4XPages可能有助于处理附件和组合附件等。我认为您的大问题是如何将Domino文档转换为

在我的应用程序中,我需要有一个打印功能,可以将Notes视图中的文档(可以是图像、pdf、office文档)打印为单个有序文件

通过一个非邪恶的伪装搜索引擎,我发现iText支持许多功能,包括合并pdf、转换为pdf和阅读流

我不确定我的内部仅使用的应用程序是否属于AGPL许可证

我还关心其他替代方案,它们允许我合并pdf、文档转换和包含图像


欢迎使用java代理、ssjs和java的任何示例代码。

POI4XPages可能有助于处理附件和组合附件等。我认为您的大问题是如何将Domino文档转换为适当的格式以便打印(pdf)和保持适当的呈现。本机Notes文档不是html/css。因此,必须将它们呈现为html/css,然后转换为pdf以与其他附件结合。DominoDocument类中有一些生成html的方法。

POI4XPages可能有助于处理附件和组合附件等。我认为您的大问题是如何将Domino文档转换为适当的格式以进行打印(pdf)并保持适当的呈现。本机Notes文档不是html/css。因此,必须将它们呈现为html/css,然后转换为pdf以与其他附件结合。DominoDocument类中有一些方法可以生成html。

最好的解决方案是在无头模式下使用Open Office并将所有文件转换为PDF

支持大多数常用文件(办公室文档等)


对于PDF操作(合并、拆分等),PDFBox是一个很好的选择。

最好的解决方案是在无头模式下使用Open Office,并将所有文件转换为PDF

支持大多数常用文件(办公室文档等)


对于PDF操作(合并、拆分等),PDFBox是一个很好的选择。

下面是一个示例,它使用XPages中的服务器端JavaScript和iText生成PDF文件。iText是一个Java类库,可以从SSJS调用它。当然,它可以用Java编写,也可以从XPage调用。这是一个SSJS解决方案。在XPage
beforeRenderResponse
事件中:

importPackage(com.itextpdf);   // put the itext jar file in the Code/Jars folder
importPackage(java.io);
importPackage(java.net);
importPackage(javax.imageio);
importPackage(sun.misc);
importPackage(java.lang);

//Initialize
var hostname = context.getUrl().toString().split(facesContext.getExternalContext().getRequest().getRequestURI())[0];

var con = facesContext.getExternalContext();
var response:com.ibm.xsp.webapp.XspHttpServletResponse = con.getResponse();

var outfilename = "MyPDF.pdf";

// set response headers for browser to recognize data
// deliver uncached PDF
response.setContentType("application/pdf");
response.setHeader("Cache-Control", "no-cache");

response.setDateHeader("Expires", -1);
response.setHeader( "Content-Disposition", "inline; filename="+outfilename );

// create new PDF
var newPDF:com.itextpdf.text.Document = new com.itextpdf.text.Document(com.itextpdf.text.PageSize.LEGAL, 36, 36, 7, 10);

// Setup the Output Stream for the PDF
var outputstream = response.getOutputStream();
var writer = com.itextpdf.text.pdf.PdfWriter.getInstance(newPDF, outputstream);
var htmlWorker = new com.itextpdf.text.html.simpleparser.HTMLWorker(newPDF);

// Open the PDF and write the PDF header info
newPDF.open();

// set PDF meta data
newPDF.addAuthor("Eric Numeric");
newPDF.addCreationDate();
newPDF.addCreator("My Company, Inc.");
newPDF.addTitle("PDF Title");

// Text styles examples
var fontBOLD    = com.itextpdf.text.FontFactory.getFont("Consolas", 12, com.itextpdf.text.Font.BOLD);
var fontLABEL   = com.itextpdf.text.FontFactory.getFont("Consolas", 10, com.itextpdf.text.Font.BOLD, com.itextpdf.text.BaseColor.GRAY);
var fontBOLD8   = com.itextpdf.text.FontFactory.getFont("Consolas", 8, com.itextpdf.text.Font.BOLD);
var totrowFont  = com.itextpdf.text.FontFactory.getFont("Consolas", 7, com.itextpdf.text.Font.BOLD, com.itextpdf.text.BaseColor.BLUE);
var parabreak   = new com.itextpdf.text.Paragraph(" ");
var hiliteG     = new com.itextpdf.text.BaseColor(202, 255, 211, 1);  com.itextpdf.text.BaseColor.setValue(202, 255, 211, 1)
var bgcolor:com.itextpdf.text.BaseColor  = com.itextpdf.text.html.WebColors.getRGBColor("#CAFFD3");


// Get logo image - scale down
var image:com.itextpdf.text.Image = com.itextpdf.text.Image.getInstance(new URL(hostname + "/img/Logo.png")); 

image.scaleToFit(900, 40);
//print("scaled image");

newPDF.add(parabreak);       
newPDF.add(parabreak);  

//Create a table with 2 cells, width = 100%
var hdrtable = new com.itextpdf.text.pdf.PdfPTable(2);      // 2 columns.
hdrtable.setWidthPercentage(100);

// Logo
var cell1 = new com.itextpdf.text.pdf.PdfPCell(image); 
cell1.setBorder(com.itextpdf.text.Rectangle.NO_BORDER);     // removes border
hdrtable.addCell(cell1);

var cell2 = new com.itextpdf.text.pdf.PdfPCell(new com.itextpdf.text.Paragraph("Hello"));
cell2.setHorizontalAlignment(com.itextpdf.text.Element.ALIGN_CENTER);
cell2.setVerticalAlignment(com.itextpdf.text.Element.ALIGN_BOTTOM);
hdrtable.addCell(cell2);

// add table to PDF doc
newPDF.add(hdrtable);

// close PDF doc
newPDF.close();

// close writer
writer.close();

// complete response
facesContext.responseComplete();
打开Xpage时,应使用浏览器的PDF查看器显示PDF,而不是作为文件下载

如果已经开发了HTML页面,还可以使用iText将HTML页面转换为PDF:


PDF或图像的文件附件可以附加iText。要转换Office文档、电子表格等,可能需要另一个Java库来转换为PDF——然后可以使用iText附加新的PDF。

下面是一个示例,使用XPages和iText中的服务器端JavaScript生成PDF文件。iText是一个Java类库,可以从SSJS调用它。当然,它可以用Java编写,也可以从XPage调用。这是一个SSJS解决方案。在XPage
beforeRenderResponse
事件中:

importPackage(com.itextpdf);   // put the itext jar file in the Code/Jars folder
importPackage(java.io);
importPackage(java.net);
importPackage(javax.imageio);
importPackage(sun.misc);
importPackage(java.lang);

//Initialize
var hostname = context.getUrl().toString().split(facesContext.getExternalContext().getRequest().getRequestURI())[0];

var con = facesContext.getExternalContext();
var response:com.ibm.xsp.webapp.XspHttpServletResponse = con.getResponse();

var outfilename = "MyPDF.pdf";

// set response headers for browser to recognize data
// deliver uncached PDF
response.setContentType("application/pdf");
response.setHeader("Cache-Control", "no-cache");

response.setDateHeader("Expires", -1);
response.setHeader( "Content-Disposition", "inline; filename="+outfilename );

// create new PDF
var newPDF:com.itextpdf.text.Document = new com.itextpdf.text.Document(com.itextpdf.text.PageSize.LEGAL, 36, 36, 7, 10);

// Setup the Output Stream for the PDF
var outputstream = response.getOutputStream();
var writer = com.itextpdf.text.pdf.PdfWriter.getInstance(newPDF, outputstream);
var htmlWorker = new com.itextpdf.text.html.simpleparser.HTMLWorker(newPDF);

// Open the PDF and write the PDF header info
newPDF.open();

// set PDF meta data
newPDF.addAuthor("Eric Numeric");
newPDF.addCreationDate();
newPDF.addCreator("My Company, Inc.");
newPDF.addTitle("PDF Title");

// Text styles examples
var fontBOLD    = com.itextpdf.text.FontFactory.getFont("Consolas", 12, com.itextpdf.text.Font.BOLD);
var fontLABEL   = com.itextpdf.text.FontFactory.getFont("Consolas", 10, com.itextpdf.text.Font.BOLD, com.itextpdf.text.BaseColor.GRAY);
var fontBOLD8   = com.itextpdf.text.FontFactory.getFont("Consolas", 8, com.itextpdf.text.Font.BOLD);
var totrowFont  = com.itextpdf.text.FontFactory.getFont("Consolas", 7, com.itextpdf.text.Font.BOLD, com.itextpdf.text.BaseColor.BLUE);
var parabreak   = new com.itextpdf.text.Paragraph(" ");
var hiliteG     = new com.itextpdf.text.BaseColor(202, 255, 211, 1);  com.itextpdf.text.BaseColor.setValue(202, 255, 211, 1)
var bgcolor:com.itextpdf.text.BaseColor  = com.itextpdf.text.html.WebColors.getRGBColor("#CAFFD3");


// Get logo image - scale down
var image:com.itextpdf.text.Image = com.itextpdf.text.Image.getInstance(new URL(hostname + "/img/Logo.png")); 

image.scaleToFit(900, 40);
//print("scaled image");

newPDF.add(parabreak);       
newPDF.add(parabreak);  

//Create a table with 2 cells, width = 100%
var hdrtable = new com.itextpdf.text.pdf.PdfPTable(2);      // 2 columns.
hdrtable.setWidthPercentage(100);

// Logo
var cell1 = new com.itextpdf.text.pdf.PdfPCell(image); 
cell1.setBorder(com.itextpdf.text.Rectangle.NO_BORDER);     // removes border
hdrtable.addCell(cell1);

var cell2 = new com.itextpdf.text.pdf.PdfPCell(new com.itextpdf.text.Paragraph("Hello"));
cell2.setHorizontalAlignment(com.itextpdf.text.Element.ALIGN_CENTER);
cell2.setVerticalAlignment(com.itextpdf.text.Element.ALIGN_BOTTOM);
hdrtable.addCell(cell2);

// add table to PDF doc
newPDF.add(hdrtable);

// close PDF doc
newPDF.close();

// close writer
writer.close();

// complete response
facesContext.responseComplete();
打开Xpage时,应使用浏览器的PDF查看器显示PDF,而不是作为文件下载

如果已经开发了HTML页面,还可以使用iText将HTML页面转换为PDF:


PDF或图像的文件附件可以附加iText。要转换Office文档、电子表格等,可能需要另一个Java库来转换为PDF——然后可以使用iText附加新的PDF。

我曾经从XPages生成PDF文档,尽管是通过CSJS调用的(使用两个JSON RPC服务来获取数据)。

我曾经从XPages生成PDF文档,尽管是通过CSJS调用的(使用两个JSON RPC服务获取数据)。

要知道您的内部专用应用程序是否属于AGPL许可证范围,请联系iText软件:。但我的直觉是,只要你的最终用户有一个简单的方法来访问你的应用程序的源代码,那么你就很有可能去。在你的情况下,你的最终用户只是你公司的雇员。因此,如果接待员使用您的应用程序,那么接待员应该能够访问源代码。询问示例代码,而不显示您自己尝试了什么,如果您不喜欢或被允许在公共网站上发布应用程序的完整源代码,我将永远不会使用AGPL许可证。我不敢这样做。要知道您的内部应用程序是否属于AGPL许可证,请联系iText软件:。但我的直觉是,只要你的最终用户有一个简单的方法来访问你的应用程序的源代码,那么你就很有可能去。在你的情况下,你的最终用户只是你公司的雇员。因此,如果接待员使用您的应用程序,那么接待员应该能够访问源代码。询问示例代码,而不显示您自己尝试了什么,如果你不喜欢或被允许在公共网站上发布应用程序的完整源代码,我也不敢这样做