gpt4 book ai didi

java - 使用 Java 等从外部更改 Indesign 文件

转载 作者:行者123 更新时间:2023-12-01 18:34:29 24 4
gpt4 key购买 nike

我的目标是通过外部程序(Java)更改 indesign 文件中的文本。

我们以 .indd 文件形式获取传单,由于定价模型发生变化,我们希望更改价格,而无需手动编辑 indd 文件(服务提供商必须这样做,$$$)。

我用 Java 构建了一个程序来识别要更改的位置,价格和文本在文件中以纯文本形式显示。但是,当我尝试将价格从 19.9 更改为 22.9 时,由于数据库错误,.indd 文件无法打开。 :-( 可能是校验和等)。

我的问题:有没有一种方法无需 Indesing 即可编辑 .indd 文件。我从 Adob​​e 找到了 SDK,但如果没有 InD 服务器或软件,您就无法使用它。是否有任何新软件可以进行这些更改,之前的帖子表明不可能,...

谢谢!

MTH_DE

最佳答案

没有记录的方法可以在没有 InDesign 的情况下编辑 InDesign 文档。其内部文件格式是专有的(“仅由与产品相关的专利、配方、品牌名称或商标的所有者制造和销售”)。

InDesign SDK 并不针对实际的文件数据,因为它旨在帮助开发在内部 InDesign 本身运行的插件。它仅记录运行时 ID 的内部状态。

IDML 提供 InDesign 文档的 XML 表示形式,并且可以使用常用的工具包进行编辑。但是,IDML 文件仍然需要使用 InDesign 本身读入、解析和格式化。此外,IDML 还提供内容标记和编辑功能,但内容或格式的任何更改的结果只能在使用 InDesign 打开文件后才能看到。例如,虽然您可以用更长的文本替换短文本,或者用更大的字体替换小字体,但您无法“查看”它是否适合最初分配的空间。 p><小时/>

免责声明:以下是我自己的猜测。使用等风险由您自行承担。

综上所述:是的,你是对的。有关“数据库错误”的消息确实是您在手动编辑 InDesign 文件后收到的信息。 (以后的帖子请注意:请永远不要声明报告了“错误”。始终声明准确的错误文本!)

ID 文件以关系数据库格式存储,其中实际数据已分为 4K 大“页面”。每个页面在最后、偏移量0xFF8处包含一个4字节的校验和,这似乎是Adler-32的变体。我发现计算它并不容易,但是你可以将校验和设置为全零,这似乎表明它没有被使用。您的文件将照常在 InDesign 中打开,保存后您将看到校验和已更新。

<小时/>

请注意,非常强烈不建议手动编辑二进制文件。您无法插入或删除文本,只能覆盖它。文本可能不会按顺序存储,也可能不会存储在您期望的代码页中。并非您在二进制文件中找到的所有文本在 InDesign 本身中都是可见的,甚至根本无法使用;另外,相反,并非您在 InDesign 中可以在文档中看到的所有文本都可以存储在二进制文件中。

关于java - 使用 Java 等从外部更改 Indesign 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22661503/

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