Spire.Office for Java 3.12.0已正式发布。该版本新增了一些功能,如Spire.PDF for Java支持SVG转PDF,PDF转PdfA1A/PdfA1B/PdfA2A/PdfA2B/PdfA3A/PdfA3B,也支持转换多页PDF到Excel一个Sheet中。除此之外,一些在加载、转换和操作Word、Excel、PDF以及PowerPoint文档时出现的问题也得以成功解决。更多新功能及问题修复详情如下。
获取Spire.Office for Java 3.12.0, 请点击:https://www.e-iceblue.cn/Downloads/Spire-Office-JAVA.html
问题修复:
新功能:
PdfStandardsConverter converter = new PdfStandardsConverter(inputPath);
converter.toPdfA1B(OutputPath);
PdfDocument doc1 = new PdfDocument();
doc1.loadFromSvg("https://cdn.e-iceblue.cn/svgFile.svg");
doc1.saveToFile("pdfFile.pdf", FileFormat.PDF);
String location = signatureOne.getLocationInfoLabel();
String reason = signatureOne.getReason();
PdfDocument pdf = new PdfDocument();
pdf.loadFromFile(PDFFile);
pdf.getConvertOptions().setConvertToOneSheet(true);
pdf.saveToFile(ExcelFile,FileFormat.XLSX);
PdfDocument pdf = new PdfDocument();
pdf.loadFromFile(PDFFile);
doc.getConvertOptions().setLinesDetermineCell(true)
pdf.saveToFile(ExcelFile,FileFormat.XLSX);
问题修复:
问题修复:
问题修复:
Spire.XLS for Java 3.12.3现已发布。此次更新主要修改了一些在Excel转PDF/图片及获取公式值时出现的问题。详情见下文。
问题修复:
Spire.Doc for Java 3.12.5已发布。该版本增强了转换Word到PDF的功能,同时还修复了被插入的附件的文档名字乱码等问题。详情请阅读以下内容。
问题修复:
Spire.Presentation for Java 3.12.4已发布。该版本增强了PPT转换到TIFF的功能,并且修复加载PPT文档时抛出的问题。详情请阅读以下内容。
问题修复:
https://www.e-iceblue.cn/Downloads/Spire-Presentation-JAVA.html
2020 年圣诞节和 2021 年新年将至,E-iceblue 全体职工在此向您致以诚挚的节日问候与祝福!
受全球性新冠(Covid-19)疫情的持续影响,2020 年注定是艰难的一年。为了减轻老客户和潜在客户的经济压力,我们在 2020 年 12 月 10 日至 2021 年 1 月 31 日期间推出了今年最大的促销活动。本次活动的具体内容如下:
如果您想享受此优惠,请联系我们销售团队(邮箱:该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。 或 QQ: 2777145891)获取折扣。
2020年发布的新产品
在 2020 年,我们发布了三款产品,它们是:
下载
对我们的产品感兴趣?请通过以下链接下载并免费试用:
该文将介绍如何使用Spire.PDF for Java 在PDF文档中绘制上标文本和下标文本。
绘制PDF上标文本
import com.spire.pdf.*;
import com.spire.pdf.graphics.*;
import java.awt.*;
import java.awt.geom.*;
public class PdfSuperscriptText {
public static void main(String[] args) {
//创建PdfDocument实例
PdfDocument doc = new PdfDocument();
//添加一个页面
PdfPageBase page = doc.getPages().add();
//设置字体
PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("宋体", Font.PLAIN,14),true);
PdfSolidBrush brush = new PdfSolidBrush(new PdfRGBColor(Color.black));
//设置x,y坐标初始值
float x = 120f;
float y = 100f;
String text = "示例文本";
page.getCanvas().drawString(text, font, brush, new Point2D.Float(x, y));
//计算文本的尺寸
Dimension2D size = font.measureString(text);
//设置上标的X坐标
x += size.getWidth();
//设置格式为上标
PdfStringFormat format = new PdfStringFormat();
format.setSubSuperScript(PdfSubSuperScript.Super_Script);
//绘制上标
text = "上标";
page.getCanvas().drawString(text, font, brush, new Point2D.Float(x, y), format);
//保存文档
String result="output/superScript.pdf";
doc.saveToFile(result);
}
}
效果图:

绘制PDF下标文本
import com.spire.pdf.*;
import com.spire.pdf.graphics.*;
import java.awt.*;
import java.awt.geom.*;
public class PdfSubscriptText {
public static void main(String[] args) {
//创建PdfDocument实例
PdfDocument doc = new PdfDocument();
//添加一个页面
PdfPageBase page = doc.getPages().add();
//设置字体
PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("宋体", Font.PLAIN,14),true);
PdfSolidBrush brush = new PdfSolidBrush(new PdfRGBColor(Color.black));
//设置x,y坐标初始值
float x = 120f;
float y = 100f;
String text = "示例文本";
page.getCanvas().drawString(text, font, brush, new Point2D.Float(x, y));
//计算文本的尺寸
Dimension2D size = font.measureString(text);
//设置下标的X坐标
x += size.getWidth();
//设置格式为下标
PdfStringFormat format = new PdfStringFormat();
format.setSubSuperScript(PdfSubSuperScript.Sub_Script);
//绘制下标
text = "下标";
page.getCanvas().drawString(text, font, brush, new Point2D.Float(x, y), format);
//保存文档
String result="output/subScript.pdf";
doc.saveToFile(result);
}
}
效果图:

Spire.PDF 6.12.3已发布。该版本支持了添加页面标签,并且支持转换PDF到PDFX1A文档。此外,该版本还修复了转换PDF到图片/TIFF时出现的问题。详情请阅读以下内容。
新功能:
//当文档没有页面标签时
PdfDocument doc = new PdfDocument(inputFile);
doc.PageLabels = new PdfPageLabels();
doc.PageLabels.AddRange(0, PdfPageLabels.Decimal_Arabic_Numerals_Style, "label ");
doc.SaveToFile(outputPDF);
//当文档有页面标签时
PdfDocument doc = new PdfDocument(inputFile);
PdfPageLabels label = doc.PageLabels;
label.AddRange(2, PdfPageLabels.Decimal_Arabic_Numerals_Style, "new label ");
doc.SaveToFile(outputPDF);
PdfStandardsConverter converter = new PdfStandardsConverter("in.pdf");
converter.ToPdfX1A2001("out.pdf");
signature.ConfigureCustomGraphics(DrawGraphics);
private void DrawGraphics(PdfCanvas g)
{
g.DrawString("Signed by:Tom", new PdfFont(PdfFontFamily.Helvetica, 12f), PdfBrushes.Red, new Rectangle(0, 0, 120, 20));
string inputFile = "C:/image.png";
PdfImage img = PdfImage.FromFile(inputFile);
g.DrawImage(img, 0, 60, 150, 50);
}
问题修复:
本文介绍使用Spire.XLS for Java在Excel中创建分离型饼图及环形图的方法。
分离型饼图
import com.spire.xls.*;
import com.spire.xls.charts.ChartSerie;
import java.awt.*;
public class ExplodedPieChart {
public static void main(String[] args) {
//创建Workbook对象
Workbook workbook = new Workbook();
//获取第一个工作表
Worksheet sheet = workbook.getWorksheets().get(0);
//将图表数据写入工作表
sheet.getCellRange("A1").setValue("年份");
sheet.getCellRange("A2").setValue("2017");
sheet.getCellRange("A3").setValue("2018");
sheet.getCellRange("A4").setValue("2019");
sheet.getCellRange("A5").setValue("2020");
sheet.getCellRange("B1").setValue("销售额");
sheet.getCellRange("B2").setNumberValue(4000);
sheet.getCellRange("B3").setNumberValue(6000);
sheet.getCellRange("B4").setNumberValue(7000);
sheet.getCellRange("B5").setNumberValue(8500);
//设置单元格样式
sheet.getCellRange("A1:B1").setRowHeight(15);
sheet.getCellRange("A1:B1").getCellStyle().setColor(Color.darkGray);
sheet.getCellRange("A1:B1").getCellStyle().getExcelFont().setColor(Color.white);
sheet.getCellRange("A1:B1").getCellStyle().setVerticalAlignment(VerticalAlignType.Center);
sheet.getCellRange("A1:B1").getCellStyle().setHorizontalAlignment(HorizontalAlignType.Center);
sheet.getCellRange("B2:C5").getCellStyle().setNumberFormat("\"¥\"#,##0");
//添加整体分离型饼图
Chart piechart = sheet.getCharts().add(ExcelChartType.Pie);
//设置图表数据区域
piechart.setDataRange(sheet.getCellRange("B2:B5"));
piechart.setSeriesDataFromRange(false);
//设置图表位置
piechart.setLeftColumn(4);
piechart.setTopRow(1);
piechart.setRightColumn(10);
piechart.setBottomRow(20);
//设置图表标题
piechart.setChartTitle("年销售额");
piechart.getChartTitleArea().isBold(true);
piechart.getChartTitleArea().setSize(12);
//设置系列标签
ChartSerie cs = piechart.getSeries().get(0);
cs.setCategoryLabels(sheet.getCellRange("A2:A5"));
cs.setValues(sheet.getCellRange("B2:B5"));
cs.getDataPoints().getDefaultDataPoint().getDataLabels().hasValue(true);
piechart.getPlotArea().getFill().setVisible(false);
//设置饼图整体分离
for (int i = 0; i < piechart.getSeries().getCount(); i++)
{
piechart.getSeries().get(i).getDataFormat().setPercent(20);
}
//添加局部分离型饼图
Chart piechart1 = sheet.getCharts().add(ExcelChartType.Pie);
piechart1.setDataRange(sheet.getCellRange("B2:B5"));
piechart1.setSeriesDataFromRange(false);
piechart1.setLeftColumn(11);
piechart1.setTopRow(1);
piechart1.setRightColumn(17);
piechart1.setBottomRow(20);
piechart1.setChartTitle("年销售额");
piechart1.getChartTitleArea().isBold(true);
piechart1.getChartTitleArea().setSize(12);
ChartSerie cs1 = piechart1.getSeries().get(0);
cs1.setCategoryLabels(sheet.getCellRange("A2:A5"));
cs1.setValues(sheet.getCellRange("B2:B5"));
cs1.getDataPoints().getDefaultDataPoint().getDataLabels().hasValue(true);
piechart1.getPlotArea().getFill().setVisible(false);
//设置饼图局部分离
piechart1.getSeries().get(0).getDataPoints().get(1).getDataFormat().setPercent(20);
//保存文档
workbook.saveToFile("ExplodedPieChart.xlsx", ExcelVersion.Version2016);
workbook.dispose();
}
}

分离型环形图
import com.spire.xls.*;
import com.spire.xls.charts.ChartSerie;
import java.awt.*;
public class ExplodedDoughnutChart {
public static void main(String[] args) {
//创建Workbook对象
Workbook workbook = new Workbook();
//获取第一个工作表
Worksheet sheet = workbook.getWorksheets().get(0);
//将图表数据写入工作表
sheet.getCellRange("A1").setValue("年份");
sheet.getCellRange("A2").setValue("2017");
sheet.getCellRange("A3").setValue("2018");
sheet.getCellRange("A4").setValue("2019");
sheet.getCellRange("A5").setValue("2020");
sheet.getCellRange("B1").setValue("销售额");
sheet.getCellRange("B2").setNumberValue(4000);
sheet.getCellRange("B3").setNumberValue(6000);
sheet.getCellRange("B4").setNumberValue(7000);
sheet.getCellRange("B5").setNumberValue(8500);
//设置单元格样式
sheet.getCellRange("A1:B1").setRowHeight(15);
sheet.getCellRange("A1:B1").getCellStyle().setColor(Color.darkGray);
sheet.getCellRange("A1:B1").getCellStyle().getExcelFont().setColor(Color.white);
sheet.getCellRange("A1:B1").getCellStyle().setVerticalAlignment(VerticalAlignType.Center);
sheet.getCellRange("A1:B1").getCellStyle().setHorizontalAlignment(HorizontalAlignType.Center);
sheet.getCellRange("B2:C5").getCellStyle().setNumberFormat("\"¥\"#,##0");
//添加环形图
Chart chart = sheet.getCharts().add(ExcelChartType.Doughnut);
//设置图表数据区域
chart.setDataRange(sheet.getCellRange("B2:B5"));
chart.setSeriesDataFromRange(false);
//设置图表位置
chart.setLeftColumn(4);
chart.setTopRow(1);
chart.setRightColumn(10);
chart.setBottomRow(20);
//设置图表标题
chart.setChartTitle("年销售额");
chart.getChartTitleArea().isBold(true);
chart.getChartTitleArea().setSize(12);
//设置系列标签
ChartSerie cs = chart.getSeries().get(0);
cs.setCategoryLabels(sheet.getCellRange("A2:A5"));
cs.setValues(sheet.getCellRange("B2:B5"));
cs.getDataPoints().getDefaultDataPoint().getDataLabels().hasValue(true);
chart.getPlotArea().getFill().setVisible(false);
//添加分离型环形图
Chart chart1 = sheet.getCharts().add(ExcelChartType.DoughnutExploded);
chart1.setDataRange(sheet.getCellRange("B2:B5"));
chart1.setSeriesDataFromRange(false);
chart1.setLeftColumn(11);
chart1.setTopRow(1);
chart1.setRightColumn(17);
chart1.setBottomRow(20);
chart1.setChartTitle("年销售额");
chart1.getChartTitleArea().isBold(true);
chart1.getChartTitleArea().setSize(12);
ChartSerie cs1 = chart1.getSeries().get(0);
cs1.setCategoryLabels(sheet.getCellRange("A2:A5"));
cs1.setValues(sheet.getCellRange("B2:B5"));
cs1.getDataPoints().getDefaultDataPoint().getDataLabels().hasValue(true);
chart1.getPlotArea().getFill().setVisible(false);
//保存文档
workbook.saveToFile("ExplodedDoughnutChart.xlsx",FileFormat.Version2013);
workbook.dispose();
}
}

Spire.XLS 10.12.0已发布。该版本支持调整弯箭头的折线位置,增强了转换XLS/CSV到PDF的功能。此外,该版本还修复了加载保存文档时出现的问题,详情请阅读以下内容。
新功能:
GeomertyAdjustValue ad = line.ShapeAdjustValues.AddAdjustValue(GeomertyAdjustValueFormulaType.LiteralValue);
// x是中间点的位置,小于0时在左边点的左侧,等于0时与左边点位置相同,等于50在图形中间,等于100时与右边点位置相同,大于100将超出右边点。
ad.SetFormulaParameter(x);
问题修复:
Spire.Office 5.12.0已发布。该版本主要处理了操作PPT时出现的问题,例如:Spire.Presentation增强了转换PPT到PDF的功能。详情请阅读以下内容。
该版本涵盖了最新版的Spire.Doc, Spire.PDF, Spire.XLS, Spire.Presentation, Spire.Email, Spire.DocViewer, Spire.PDFViewer, Spire.Spreadsheet, Spire.OfficeViewer, Spire.DataExport, Spire.Barcode
版本信息如下:
https://www.e-iceblue.cn/Downloads/Spire-Office-NET.html
问题修复: