好的,你的问题是你的eps文件是一个'带预览的eps'。除了实际的postscript程序外,还有一个位图,任何将eps放在页面上的应用程序都可以使用它向用户显示“预览”。

文件开头有二进制文件,如下所示:

C5 D0 D3 C6 20 00 00 00 DC 49 05 00 00 00 00 00

00 00 00 00 FC 49 05 00 AE AC 4D 00 FF FF 00 00

如果你读

Adobe Technical Note 5002 "Encapsulated PostScript File Format Specification"

看看第23页,你会发现它定义了dos eps二进制文件头,它以十六进制c5d0d3c6开头,就像你的文件一样。所以你可以看到你的文件有一个DOS头,它定义了一个预览。

现在由4-7定义postscript的开头,字节8-11定义postscript部分的长度。12-15是元文件的开始(对于您的情况是0,因此不存在),16-19是字节长度,同样是0。然后在字节20-23处是tiff表示的开始,字节24-27是tiff的长度。最后是头的校验和,在剩下的两个字节中;这里是0xffff,意思是“忽略校验和”。在这种情况下,头已经用两个字节(0x00)填充,总共32个字节,这就是为什么postscript部分的偏移量是0x20。

您的问题是,因为您已经向postscript部分添加了内容(因此增加了其大小),但是

更新了文件头,以包含Postscript节的新长度或预览的新位置,任何EPS使用者都无法删除预览。实际上,您已经损坏了postscript程序。

您要么需要更新文件头,要么通过删除文件头并从末尾修剪位图来删除预览位图,以生成“纯”EPS文件(即没有预览的文件)。

我几乎忘记添加一些说明;您没有更新eps文件中的“keywords”或“tags”。您正在添加执行postscript运算符的postscript语言程序代码。在这种情况下,当运行类似于postscript解释器的“disitller”(即生成pdf作为输出的解释器)时,pdf文件将具有

它的

元数据已更改。您不会更改

每股收益

一点都没有(这是通过标题中的注释完成的)。对于不是蒸馏器的Postscript使用者,您所做的更改将完全无效。

[更新]

修改“file2”的头(即添加了pdfmarks的文件),如下所示:

C5 D0 D3 C6 20 00 00 00 32 26 05 00 00 00 00 00

00 00 00 00 52 26 05 00 AE AC 4D 00 FF FF 00 00

生成工作文件。看来修改实际上使文件变短了。postscript部分的原始大小为0x0549dc,tiff位图的偏移量为0x0549fc。修改后,postscript部分的大小为0x052632,tiff位图的偏移量为0x052652。

我有一个潜移默化的怀疑,这是由于CR/LF翻译,如果是这样,这也将纠正tiff位图存储在文件的末尾(我注意到,在结尾的二进制文件确实看起来是不同的)。您需要将此文件读写为二进制文件,而不是文本。

java eps_用java在eps文件中添加元数据相关推荐

  1. java 修改wav文件头_使用Java聲音API從WAV文件中修剪開頭和結尾

    我有製作的基礎知識.但是,輸出文件一遍又一遍地重複WAV標頭字節.生成的文件大小合適,但是它與垃圾一起提交.使用Java聲音API從WAV文件中修剪開頭和結尾 我想使用一個擴展AudioInputSt ...

  2. java pdf添加透明水印_如何在PDF文件中添加透明水印

    原标题:如何在PDF文件中添加透明水印 有些文件添加水印,但是又不想水印影响文件的使用有时候会设置透明水印,那么PDF怎么设置透明水印呢,应该有很多的小伙伴们都很好奇应该怎么做吧,接下来就为大家分享一 ...

  3. java pdf添加透明水印_如何使用PDF编辑工具在PDF文件中添加透明水印

    PDF 文件在修改编辑的时候会使用到 PDF 编辑工具,不管是工 作中还是生活中,都会使用到 PDF 文件,当我们需要给 PDF 文件添 加透明水印时,该怎么操作呢,是不是有很多的小伙伴也很好奇, 那 ...

  4. Maven在pom文件中添加资源插件后,src/main/resource目录中的文件编译后不拷贝解决方法。

    在pom文件中添加以下资源插件后 <!--添加的资源插件--> <build><resources><resource><directory> ...

  5. Android开发过程中在sh,py,mk文件中添加log信息的方法

    Android开发过程中在sh,py,mk文件中添加log信息的方法 在sh文件中: echo "this is a log info" + $info 在py文件中: print ...

  6. 基于visual c++之windows核心编程代码分析(64)现有的exe文件中添加自己的代码

    我们进行信息安全编程的时候,经常需要向exe文件插入自己的源代码, 我们如何在代码中实现呢.请见代码与注释讲解 #include <iostream.h> #include <win ...

  7. 向对象中添加数据_在RMarkdown编译HTML文件中添加数据下载按钮

    介绍一个工具包, 主要是用来解决我平常写文档时文档和结果分离的问题. 它可以在 RMarkdown 输出的 HTML 文件中添加下载数据的按钮, 而不需要运行 shiny 模式. 安装 install ...

  8. Latex标题页上标和脚注的处理方法 如何在latex文件中添加footnote

    我们看看TeX怎么在文中加脚注的. 一般格式是: \footnote[num]{内容} 其中[num]是可选项, 如果省略, 则自动给该页脚注排序, 从1开 始标号. footnote只能用于普通正文 ...

  9. 想要在PDF文件中添加便贴,不妨用迅捷PDF编辑器

    pdf文档是一个比较特别的文档,他编辑起来会比较麻烦,不是普通的办公软件就可以实现的,向WPS他们编辑的话就需要花钱,但是也有PDF编辑器可以做到,比如小编见天说的迅捷PDF编辑器一样,他的功能确定很 ...

最新文章

  1. linux下文件系统不丢数据扩容方法
  2. Graphviz使用
  3. 面试后要请你吃饭_做了15年HR,面试4千人,发现优秀的会计能将这些题应答如流...
  4. Codeforces Round #647 (Div. 2) - Thanks, Algo Muse!(AB)
  5. Panasonic Programming Contest (AtCoder Beginner Contest 195) 题解
  6. MyBatis ResultMap(2)
  7. leetcode557. 反转字符串中的单词 III
  8. JavaScript文档对象模型document对象改变Html元素内容(3)
  9. Ext.grid.EditorGridPanel点击单元格改变数据,动态添加列
  10. 虚拟机(VMware Workstation Pro)安装CentOS7镜像
  11. 台式计算机主板修理教程,小白装机最新最详细的台式电脑组装教程图解
  12. 联阳IT6561方案设计|替代IT6561方案DP转HDMI转换|CS5218替代IT6561芯片设计
  13. 【Day5.1】在坑人的免税店King Power蹭午餐
  14. 【题集】AVL树、伸展树、红黑树、二叉查找树、替罪羊树的时间复杂度
  15. 【转载】最新读《你当像鸟飞往你的山》读后感心得体会5篇精选
  16. OpenFlow1.0协议解析
  17. 笔记本电脑硬盘不见了_笔记本电脑找不到硬盘原因及解决方法
  18. 小数输出最简分数c语言,小数化成最简式分数
  19. 中国电信超 2 亿用户信息被卖,售价低至 0.01 元/条!个人信息安全何在?
  20. Dubbo 和 Spring Cloud 微服务架构区别(比较笼统 看看就行)

热门文章

  1. python在内存中处理图片
  2. 瑞芯微RK3568开发板深度评测
  3. 移动硬盘插入电脑后没有显示
  4. neo4j cypher操作
  5. 小程序获取手机验证码
  6. HDU6536 hello XTCPC
  7. java web定时器_java的web项目中使用定时器 | 学步园
  8. Linkedin领英如何搜索会员
  9. scikit-learn 线性回归 LinearRegression 参数详解
  10. scikit-learn与mllib