文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Java pdf文件书签承前缩放验证的设置方法

2024-04-02 19:55

关注

1,什么是书签承前缩放?

在这里插入图片描述
换句话来说

设置了承前缩放,当你手动将page4缩放到145%,然后点击书签1,书签1定位到的page1的缩放比例也是145%

2,如何设置书签承前缩放?

使用工具:

在这里插入图片描述

承前缩放书签设置:

在这里插入图片描述

其他类型书签设置:

在这里插入图片描述

3,代码

3.1 书签结构:

在这里插入图片描述

3.2 代码


import com.aspose.pdf.*;
public class bookmark {
    public static void main(String[] args) {
        // Open document
        Document pdfDocument = new Document("D:\\chromeDownload\\测试版2.pdf");
        OutlineCollection outlines = pdfDocument.getOutlines();
        for (OutlineItemCollection outlineItem : (Iterable<OutlineItemCollection>) outlines) {
            double soureceZoom = -1;
            if (outlineItem.getDestination() != null) {
                soureceZoom = getAppointmentZoom(outlineItem.getDestination());
            } else if (outlineItem.getAction() != null) {
                soureceZoom = getAppointmentZoom(outlineItem.getAction());
            }
            if(soureceZoom == -1){
                System.out.println("书签必须承前缩放,书签名:" + outlineItem.getTitle() + ",缩放因子: " + soureceZoom);
//            System.out.println("Title : " + outlineItem.getTitle() + ",缩放因子: " + soureceZoom);
            if (outlineItem.size()>0){
                checkBookmark(outlineItem);
        }
    }
    private static void checkBookmark(OutlineItemCollection Outlines) {
    private static double getAppointmentZoom(IAppointment appointment) {
        if (appointment instanceof XYZExplicitDestination) {
            XYZExplicitDestination destination = (XYZExplicitDestination) appointment;
            return destination.getZoom();
        } else if (appointment instanceof GoToAction) {
            GoToAction goToAction = (GoToAction) appointment;
            if (goToAction.getDestination() instanceof XYZExplicitDestination) {
                XYZExplicitDestination destination = (XYZExplicitDestination) goToAction.getDestination();
                return destination.getZoom();
        } else if (appointment instanceof GoToRemoteAction) {
            GoToRemoteAction goToRemoteAction = (GoToRemoteAction) appointment;
            if (goToRemoteAction.getDestination() instanceof XYZExplicitDestination) {
                XYZExplicitDestination destination = (XYZExplicitDestination) goToRemoteAction.getDestination();
        return -1;
}

3.3 控制台输出:

在这里插入图片描述

注意:承前缩放的因子为 0;

4,书签的xml文件导出

4.1 代码

import com.aspose.pdf.Document;
import com.aspose.pdf.facades.PdfBookmarkEditor;
import java.io.FileNotFoundException;
public class AsposeTest {
    public static void main(String[] args) throws FileNotFoundException {
        Document document6 = new Document("D:\\测试版2.pdf");
        exportBookmarksToXML(document6);
    }
    public static void exportBookmarksToXML(Document document) throws FileNotFoundException {
        PdfBookmarkEditor pdfBookmarkEditor = new PdfBookmarkEditor();
        pdfBookmarkEditor.bindPdf(document);
        pdfBookmarkEditor.exportBookmarksToXML("D:\\测试版2.xml");
        pdfBookmarkEditor.getDocument().save();
}

4.2 导出文件:

<?xml version="1.0" encoding="iso_8859_1"?>
<Bookmark>
  <Title Open="True">&#30446;&#24405;缩放到页面级别
	  <Title Page="2 XYZ 71 769 0" Action="GoTo" Open="True">3.2.S.7 &#31283;&#23450;&#24615;承前缩放
		  <Title>3.2.S.7.1 &#31283;&#23450;&#24615;&#24635;&#32467;</Title>实际大小
		  <Title Page="5 FitBH 842" Action="GoTo">3.2.S.7.2 &#19978;&#24066;&#21518;&#31283;&#23450;&#24615;&#26041;&#26696;&#21644;&#31283;&#23450;&#24615;&#25215;&#35834;</Title>适合可见
		  <Title Page="8 XYZ 71 523 0" Action="GoTo">3.2.S.7.3 &#31283;&#23450;&#24615;&#25968;&#25454;</Title>承前缩放
	  </Title>
  </Title>
  
  <Title Page="1 XYZ 0 842 0" Action="GoTo" Open="False">&#34920;&#30446;&#24405;</Title>承前缩放
  <Title Page="1 XYZ 0 842 0" Action="GoTo" Open="False">&#22270;&#30446;&#24405;</Title>承前缩放
</Bookmark>

aspose.pdf 官网指路 : https://docs.aspose.com/pdf/java/get-update-and-expand-bookmark/

到此这篇关于Java pdf文件书签承前缩放验证的文章就介绍到这了,更多相关Java 书签承前缩放验证内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯