gpt4 book ai didi

java - 如何使用 ODFDOM 设置 ods 电子表格的页面大小、页面方向和页边距?

转载 作者:行者123 更新时间:2023-12-04 04:46:24 25 4
gpt4 key购买 nike

Apache 孵化项目 ODFDOM允许用户以编程方式读取和创建各种开放的文档格式文件,包括电子表格。

我正在尝试为我正在创建的电子表格设置各种打印选项,使用他们重新改进的“简单 API”,但是他们似乎还没有公开一种简单的方法来修改文档属性,例如页边距、页面大小(高度/width)和页面方向(横向/纵向)。

我需要从 SpreadsheetDocument 获得允许我修改这些值的东西。

最佳答案

可以对 SpreadsheetDocument 提供访问权限的一些底层 ODF 对象进行必要的调用。首先,我们需要获取正确的文档属性引用(对于所有示例,“电子表格”是对创建的电子表格文档的引用):

    StyleMasterPageElement defaultPage = spreadsheet.getOfficeMasterStyles().getMasterPage("Default");
String pageLayoutName = defaultPage.getStylePageLayoutNameAttribute();
OdfStylePageLayout pageLayoutStyle = defaultPage.getAutomaticStyles().getPageLayout(pageLayoutName);
PageLayoutProperties pageLayoutProps = PageLayoutProperties.getOrCreatePageLayoutProperties(pageLayoutStyle);

然后,我们可以设置各种属性,例如边距、方向和高度/宽度。请注意,页面方向值似乎需要高度和宽度值才能正常工作,并且高度广告宽度需要是所使用方向的高度和宽度:
    pageLayoutProperties.setPageHeight(pageHeightInMM);
pageLayoutProperties.setPageWidth(pageWidthInMM);
pageLayoutProperties.setPrintOrientation(PrintOrientation.LANDSCAPE);
pageLayoutProperties.setMarginLeft(leftMarginInMM);
pageLayoutProperties.setMarginRight(rightMarginInMM);
pageLayoutProperties.setMarginTop(topMarginInMM);
pageLayoutProperties.setMarginBottom(bottomMarginInMM);

我基于 another developer's notes关于如何使用原始 ODFDOM API 执行此操作,并且能够使用此代码成功更改生成的文档的属性。

关于java - 如何使用 ODFDOM 设置 ods 电子表格的页面大小、页面方向和页边距?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18108452/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com