彩票走势图

Java版企业级文档开发套包Spire.Office v3.4.0全新上线!PDF控件新增5大新功能

原创|产品更新|编辑:李显亮|2020-04-30 11:46:57.740|阅读 589 次

概述:Spire.Office for Java v3.4.0已正式发布。该版本新增加了一些功能,例如Spire.PDF、Spire.Presentation、Spire.XLS均有新功能发布。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

你在寻找支持在Java中用编程方法处理各类格式文档的API吗?好巧,Java版企业级文档管理组合套包Spire.Office 2020全新上线!Word、Excel、PPT、PDF、条形码等格式一网打尽。

目前,Spire.Office for Java 迎来了v3.4.0版的更新。该版本中,Spire.PDF支持在签名时自定义图片/名称/信息的宽度,支持给PdfAnnotation设置作者/主题/创建日期/修改日期属性,支持创建PDF启动操作,支持提取高亮文本和颜色,支持嵌入3D文件和声音文件;Spire.Presentation支持转换一个GroupShape到图片,支持设置/获取幻灯片标题,支持设置动画播放重复类型;Spire.Doc支持设置对角线表格边框,支持设置装订线;Spire.XLS支持拷贝单元格样式,支持移除DataValidation。此外,本次更新还修复了在加载、转换和操作PDF、PowerPoint、Word、Excel文档时出现的一些问题。点击下方按钮即可下载试用↓↓↓

免费下载Spire.Office for Java v3.4.0

新功能及问题修复详情,请参阅如下内容。


Spire.PDF for Java(点击下载)

优化:

  • 优化了转换PDF到Word的时间。

新功能:

  • 支持在签名PDF页面时自定义签名 图片/名称/信息 的宽度。
    signature.setCustomSignPosition(true).
    signature.setCustomSignImagePosition(x,y,width,height).
    signature.setCustomSignNamePosition(x,y,width,height)
    signature.setCustomSignDetailPosition(x,y,width,height).
  • 支持给PdfAnnotation设置 作者/主题/创建日期/修改日期 属性。
    setAuthor(String value);
    setSubject(String value);
    setCreationDate(Date value);
    setModifiedDate(Date value);
  • 支持展开指定书签。
    setExpandBookmark(boolean value)
  • 支持获取RadioButton域的样式。
    PdfRadioButtonListFieldWidget radio = (PdfRadioButtonListFieldWidget)field;
    //获取按钮样式
    PdfCheckBoxStyle buttonStyle = radio.getButtonStyle();
  • 支持创建PDF启动操作。
    PdfDocument doc = new PdfDocument();
    PdfPageBase page = doc.getPages().add();
    //Create a PDF Launch Action
    PdfLaunchAction launchAction = new PdfLaunchAction(inputFile);
    //Create a PDF Action Annotation with the PDF Launch Action
    String text = "Click here to open file";
    PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("Arial",0, 13));
    Rectangle2D rect = new Rectangle2D.Float(50, 50, 230, 15);
    page.getCanvas().drawString(text, font, PdfBrushes.getForestGreen(), rect);
    PdfActionAnnotation annotation = new PdfActionAnnotation(rect, launchAction);
    //Add the PDF Action Annotation to page
    page.getAnnotationsWidget().add(annotation);
    //Save the document
    doc.saveToFile(outputFile);
  • 实现提取高亮文本和颜色的功能。
    PdfDocument doc = new PdfDocument();
    //Load a pdf file
    doc.loadFromFile(inputFile);
    FileWriter fw=new FileWriter(outputFile,true);
    BufferedWriter bw=new BufferedWriter(fw);
    bw.write("Extracted hightlighted text:"+"\n");
    PdfPageBase page = doc.getPages().get(0);
    for (int i = 0; i < page.getAnnotationsWidget().getCount(); i++) { if (page.getAnnotationsWidget().get(i) instanceof PdfTextMarkupAnnotationWidget) { PdfTextMarkupAnnotationWidget textMarkupAnnotation = (PdfTextMarkupAnnotationWidget)page.getAnnotationsWidget().get(i); //Get the highlighted text bw.write(page.extractText(textMarkupAnnotation.getBounds())); //Get the highlighted color PdfRGBColor color = textMarkupAnnotation.getTextMarkupColor(); bw.write("Color="+(color.getR() & 0XFF) +","+(color.getG() & 0XFF)+","+(color.getB() & 0XFF)+"\n"); } }
  • 支持获取目录内容的目标。
    PdfDocument pdf = new PdfDocument(folder + "testTOC.pdf");
    //Get the first page
    PdfPageBase page = pdf.getPages().get(0);
    //Get the annotation collection
    PdfDocumentLinkAnnotationWidget link;
    PdfDestination destination;
    PdfAnnotationCollection annotations = page.getAnnotationsWidget();
    for (int i = 0; i < annotations.getCount(); i++) { if (annotations.get(i) instanceof PdfDocumentLinkAnnotationWidget) { link = (PdfDocumentLinkAnnotationWidget)annotations.get(i); destination =link.getDestination(); int pageIndex = destination.getPageNumber(); System.out.println("page Index of "+link.getName()+":"+pageIndex); Point2D location = destination.getLocation(); System.out.println("location: "+location.getX()+","+location.getY()); } }
  • 支持设置画笔的虚实线格式。
    //Create a pen
    PdfPen pen = new PdfPen(new PdfRGBColor(Color.red), 3f);
    //Set dash style
    pen.setDashStyle(PdfDashStyle.Dash);
  • 支持嵌入3D文件。
    String inputFile = "data/CreatePdf3DAnnotation.u3d";
    String outputFile = "output/CreatePdf3DAnnotation.pdf";
    
    //Create a Pdf document.
    PdfDocument pdf = new PdfDocument();
    //Add a new page.
    PdfPageBase page = pdf.getPages().add();
    
    //Draw a rectangle on the page to define the canvas area for the 3D file.
    Rectangle rt = new Rectangle(0, 80, 200, 200);
    //Initialize a new object of Pdf3DAnnotation, load the .u3d file as 3D annotation.
    Pdf3DAnnotation annotation = new Pdf3DAnnotation(rt, inputFile);
    annotation.setActivation(new Pdf3DActivation());
    annotation.getActivation().setActivationMode(Pdf3DActivationMode.Page_Open);
    
    Pdf3DView View = new Pdf3DView();
    View.setBackground(new Pdf3DBackground(new PdfRGBColor(128,0,128)));
    View.setViewNodeName("3DAnnotation");
    View.setRenderMode(new Pdf3DRendermode(Pdf3DRenderStyle.Solid));
    View.setInternalName("3DAnnotation");
    View.setLightingScheme(new Pdf3DLighting());
    View.getLightingScheme().setStyle(Pdf3DLightingStyle.Day);
    
    //Set the 3D view mode for the annotation.
    annotation.getViews().add(View);
    //Add the annotation to Pdf.
    page.getAnnotationsWidget().add(annotation);
    //Save the document
    pdf.saveToFile(outputFile);
  • 支持嵌入声音文件。
    String inputFile = "data/EmbedSoundFile.pdf";
    String inputFile_1 = "data/Music.wav";
    String outputFile = "output/EmbedSoundFile.pdf";
    
    //create a pdf document
    PdfDocument doc = new PdfDocument();
    //load file from disk
    doc.loadFromFile(inputFile);
    
    //get the first page
    PdfPageBase page = doc.getPages().get(0);
    //create a sound action
    PdfSoundAction soundAction = new PdfSoundAction(inputFile_1);
    soundAction.getSound().setBits(16);//8时为杂音
    soundAction.getSound().setChannels(PdfSoundChannels.Stereo);
    soundAction.getSound().setEncoding(PdfSoundEncoding.Signed);
    soundAction.setVolume(0.8f);
    soundAction.setRepeat(true);
    //set the sound action to be executed when the PDF document is opened
    doc.setAfterOpenAction(soundAction);
    //save the document
    doc.saveToFile(outputFile);
  • 支持设置页面标签的顺序。
    PdfPageBase page = pdf.getPages().get(0);
    page.SetTabOrder(TabOrder.Structure);

问题修复:

  • 修复了用图片签名PDF后,图片被拉伸的问题。
  • 修复了在添加注释后程序抛异常“NullPointerException”的问题。
  • 修复了绘制包含按钮域且按钮域填充了图片的PDF页面到新页面,新页面的按钮域图片变小的问题。


Spire.Presentation for Java(点击下载)

新功能:

  • 支持转换一个GroupShape到图片。
    Presentation ppt = new Presentation();
    ppt.loadFromFile(input);
    for (int i = 0; i < ppt.getSlides().get(0).getShapes().getCount(); i++){ String fileName = outputPath + "shapeToImage_"+i+".png"; BufferedImage image = ppt.getSlides().get(0).getShapes().saveAsImage(i); ImageIO.write(image, "PNG", new File(fileName)); }
  • 支持设置、获取幻灯片标题。
    ISlide slide1 = ppt.getSlides().get(0);
    slide1.getTitle();
    slide1.setTitle("new title");
  • 支持设置文本高亮选项
    TextHighLightingOptions options = new TextHighLightingOptions();
    options.setWholeWordsOnly(true);
    options.setCaseSensitive(true);
    shape.getTextFrame().HighLightText("Spire", Color.yellow, options);
  • 支持设置动画播放重复类型。
    nimationEffectCollection animations = slide.getTimeline().getMainSequence();    animations.get(0).getTiming().setAnimationRepeatType(AnimationRepeatType.UtilEndOfSlide);
  • 支持转换形状到图片时设置分辨率的功能。
    Presentation ppt = new Presentation();
    ppt.loadFromFile(input);
    for (int i = 0; i < ppt.getSlides().get(0).getShapes().getCount(); i++){ String fileName = outputPath + "shapeToImage_demo"+i+".png"; BufferedImage image = ppt.getSlides().get(0).getShapes().saveAsImage(i,300,300); ImageIO.write(image, "PNG", new File(fileName)); }
  • 支持获取文本在形状内位置的功能。
    Presentation ppt = new Presentation();
    ppt.loadFromFile(inputFile);
    IAutoShape shape = (IAutoShape)ppt.getSlides().get(0).getShapes().get(0);
    Point2D location =shape.getTextFrame().getTextLocation();
    String concent = "text在第一张幻灯片中Shape中的坐标: x= " + (location.getX() - shape.getLeft()) + "  y= " + (location.getY() - shape.getTop());
    System.out.println(concent);

问题修复:

  • 修复了转换形状到图片部分内容丢失的问题。
  • 修复了转换形状到图片程序抛NullPointerException异常。
  • 修复了转换形状到图片程序抛Argument width[318] or height[0] cannot be less or equal to zero。
  • 修复了设置数据标签的旋转角度后结果文档打开失败的问题。
  • 修复了加载ODP文档抛Unsupported file format。
  • 修复了转换形状到图片公式内容不正确的问题。
  • 修复了失败的设置图表系列的间隙宽度的问题。
  • 修复了转换PPT到PDF/Word时,图表不正确的问题。
  • 修复了添加Html内容失败的问题。
  • 修复了设置DOUGHNUT图表的图例字体以及颜色失败的问题。
  • 修复了添加html后h1标签加粗样式丢失的问题。
  • 修复了创建图表保存文档失败的问题。


Spire.Doc for Java(点击下载)

新功能:

  • 支持了设置对角线表格边框。
    Document doc = new Document();
    Section section = doc.addSection();
    Table oTable = section.addTable(true);
    section.addParagraph();
    oTable.resetCells(10, 3);
    oTable.getTableFormat().getPaddings().setTop(10);
    oTable.getTableFormat().getPaddings().setBottom(10);
    oTable.getTableFormat().setHorizontalAlignment(RowAlignment.Center);     oTable.getLastCell().getCellFormat().getBorders().getDiagonalUp().setBorderType(BorderStyle.Single);   oTable.getFirstRow().getCells().get(0).getCellFormat().getBorders().getDiagonalDown().setBorderType(BorderStyle.Double);
    doc.saveToFile(outputFile);
  • 支持设置装订线的功能。
    Section section = document.getSections().get(0);
    section.getPageSetup().setGutter(100f);
  • 支持设置表格单元格的对角线边框。
    table.get(0,0).getCellFormat().getBorders().getDiagonalUp().setBorderType(BorderStyle.Single);
    table.get(0,0).getCellFormat().getBorders().getDiagonalUp().setColor(Color.blue);
    table.get(0,0).getCellFormat().getBorders().getDiagonalUp().setLineWidth(0.5f);    table.get(0,0).getCellFormat().getBorders().getDiagonalDown().setBorderType(BorderStyle.Single);
    table.get(0,0).getCellFormat().getBorders().getDiagonalDown().setColor(Color.blue);
    table.get(0,0).getCellFormat().getBorders().getDiagonalDown().setLineWidth(0.5f);

问题修复:


Spire.XLS for Java(点击下载)

新功能:

  • 支持拷贝单元格样式。
    srcRange.copy(destRange,true,true);
    公布GroupByTape 和ExpandCollapseFlags枚举类型。
    worksheet.getRange().get("A1:C1").expandGroup(GroupByType.ByRows,ExpandCollapseFlags.ExpandParent);
  • 支持不显示零。
    worksheet.isDisplayZeros(false);
  • 支持移除DataValidation。
    workbook.getWorksheets().get(0).getDVTable().remove(rectangles);
  • 支持设置PrintError为NA。
    pageSetup.setPrintErrors(PrintErrorsType.NA);
  • 支持添加单选按钮,拷贝组合框,线条以及单选按钮。
    //添加单选按钮
    worksheet.getRadioButtons().add(5,5,20,20);
    //拷贝线条
    worksheet.getTypedLines().addCopy(line);
    //拷贝单选按钮
    worksheet.getTypedRadioButtons().addCopy(button);
    //拷贝组合框
    worksheet.getTypedComboBoxes().addCopy(combobox);
  • 支持转换sheet到CSV仅保留过滤后的数据。
    worksheet.saveToFile("CsvFilePath", ";", false);

问题修复:


还想要更多吗?您可以点击阅读
【2019 · E-iceblue最新资源整合】查找需要的教程资源。如果您有任何疑问或需求,请随时,我们很高兴为您提供查询和咨询
标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@cahobeh.cn


为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
相关产品
Spire.Office for Java

Spire.Office for Java 是企业级的处理办公文档的Java应用程序的API。

Spire.Doc for Java

Spire.Doc for Java是Java Word组件,具有生成、读取、转换Word文档等功能

Spire.PDF for Java

独立专业的Java PDF组件,覆盖PDF文档生成、处理、转换等功能。

Spire.XLS for Java

Spire.XLS for Java让开发人员无需Microsoft Excel即可处理Excel

Spire.Barcode for Java

专业的条码组件,专为开发人员在Java应用程序(J2SE和J2EE)上生成、读取和扫描1D、2D条形码而设计。

title
title
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP