详解caj!caj转pdf!

关于caj

CAJ(China Academic Journal)文件格式是中国知网(CNKI)广泛使用的一种文档格式,主要用于存储学术期刊文章。

常规阅读软件无法直接打开CAJ文件。因为CAJ文件是知网特有的文件格式,需要使用专门的阅读工具——CAJ全文浏览器(CAJViewer)来进行查看和阅读。

CAJViewer只能将caj文件另存为txt,显然不是很方便。

caj文件结构

1、caj的文件结构,复用了pdf文件的子结构(pdf body)。caj 转 pdf,可以基本不失真地实现。

2、从如下位置,可以从caj文件中到 pdf 数据子结构

(1)读偏移量 0x14 处的 int 值 ,为地址指针 ptr_addr
(2)从 ptr_addr 地址处,读取内容 pdf body

caj转pdf的过程 

caj文件沿用pdf的数据结构,在文件不被破坏的情况下,可以无损转换为pdf格式

转换过程主要有这几个步骤:

(1)添加 PDF 文件头
(2)在 PDF Body 中查找所有 /Parent 字段,找到最小值,即为根 Pages 字典的对象编号
(3)添加Pages ,在 PDF Body 中查找所有 /Parent 字段值为根 Pages 字典的对象,将该对象的编号依次添加到 kids[]
(4)添加文件结束标记
(5)生成交叉引用表和文件尾
(6)添加大纲项目 

CAJ 转换工具 

当然,为了将caj转化为pdf格式,有很多工具可以使用。以下为使用工具将caj转换为pdf的一些例子。 

1)CAJViewer 打印为pdf 

CAJViewer虽然只能另存为txt文件,但是可以通过打印,将文件打印成pdf格式的文件。

这种方式实际用起来也挺麻烦。 

2)github开源工具 

中国知网学位论文仅提供 CAJ 格式下载,只能使用CAJViewer 打开,文献阅读很不方便(尤其是在非 Windows 系统上)。

使用 CAJViewer 的打印功能,得到的 PDF 文件的内容为图片,无法进行文字的选择,且原文献的大纲列表也会丢失。

这个github项目可以解决这两个问题。不过这个项目使用起来有一定门槛。对纯粹用于文献阅读的同学,使用起来有一些挑战。

https://github.com/caj2pdf/caj2pdf

3)单机工具

一些PDF编辑器,可以打开caj文件。

4)CALIBRE

Calibre支持广泛的电子书格式。CAJ转PDF不是Calibre原生支持的功能,但通过添加插件或将CAJ文件先转换为其他Calibre支持的格式,再转为PDF,可以有效解决问题。

5)在线转换

DocAI-免费CAJ转PDF工具

6)使用java打开caj文件

public void parseCajContent(String content) {
    String header = content.substring(0, 100);
    int start = content.indexOf("CatalogStart");
    int end = content.indexOf("CatalogEnd");
    String catalog = content.substring(start, end);
    processCajCatalog(catalog);
}

private void processCajCatalog(String catalog) {
    String[] entries = catalog.split(";"); // 假设目录条目以分号分隔
    for (String entry : entries) {
        Log.d("CatalogEntry", entry);
    }
}

总结来说,caj 作为学术领域的一种重要的文件格式,有丰富的学术资源可供研究。了解caj转pdf的工具还是挺有价值的。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值