C# 编辑XPS内容
我有一个应用程序,应该发送一个格式化的文件到打印机与一些条形码 我还开发了其他应用程序,可以与打印机一起工作,并通过发送xps文件直接通过printserver打印,因此我想我会尝试制作一个.xps文件,更改文本并完成它,但是我在网上找到的每一篇文章都与创建xps文件有关,而不是更改它们。我觉得这应该是可能的,如果不必在服务器上安装Office并在那里打印,那就太好了。然后,我还可以使用OpenXML和.docx文件 这很简单。假设我想将.xps文件中的incnumer文本更改为“testing123”。我该怎么做呢 我尝试了整个解压过程,打开xml,查找文本,编辑,重新压缩,但是我担心.xps格式太多了,我不理解它C# 编辑XPS内容,c#,printing,xps,C#,Printing,Xps,我有一个应用程序,应该发送一个格式化的文件到打印机与一些条形码 我还开发了其他应用程序,可以与打印机一起工作,并通过发送xps文件直接通过printserver打印,因此我想我会尝试制作一个.xps文件,更改文本并完成它,但是我在网上找到的每一篇文章都与创建xps文件有关,而不是更改它们。我觉得这应该是可能的,如果不必在服务器上安装Office并在那里打印,那就太好了。然后,我还可以使用OpenXML和.docx文件 这很简单。假设我想将.xps文件中的incnumer文本更改为“testin
向您致意,Kaspar。您已经知道,XPS文件只是一个ZIP归档文件,包含许多具有特定名称和定义结构的文件和文件夹 在根级别有一个
文档
文件夹,通常只包含一个名为1
的文档文件夹。其中是一个包含一个或多个.fpage
文件的页面
文件夹:这些文件定义文档中每个页面的内容
Documents
1
Pages
1.fpage
2.fpage
etc
如果在文本编辑器中打开这些.fpage
文件,您将看到它们只是XML文件。每个页面通常由一个
元素表示,该元素包含多个
和
元素(文本由后者表示)。但是,即使
元素确实具有UnicodeString
属性,该属性的值也不能单独更改
每个
元素还具有一个索引
属性。如果完全删除此属性,同时更改UnicodeString
属性,这几乎可以正常工作。但是,您可能会发现,在XPS Viewer应用程序中查看文件时,文本中的某些字符会被问号符号替换
字体图示符嵌入XPS文件(Resources
文件夹中的odttf
文件),生成XPS文件的软件将只嵌入源文档中使用的图示符。例如,这意味着(对于给定字体),如果未在源文档中使用字母“a”,则该字母的图示符将不会写入XPS文件的资源中。因此,如果将UnicodeString
属性更改为包含字母“a”,则该字符将在查看器中显示为问号,因为它没有指示该字符必须如何绘制的字形资源
如果您可以控制源文档(稍后转换为XPS的文档),那么我想您可以包含一段包含可能使用的所有字符的文本,并将其颜色设置为白色,这样它就不会打印,但我不确定XPS打印机驱动程序是否会删除该文本。如果没有,那么您可能可以执行以下操作:
- 打开相关的
XML文件.fpage
- 搜索
元素的所有属性以查找所需的文本
- 将该文本替换为其他文本
- 从更改的
元素中删除
属性索引
- 将更新后的XML保存回文件
- 重新压缩,然后将扩展名从zip更改为XPS
文档
文件夹,通常只包含一个名为1
的文档文件夹。其中有一个页面
文件夹,包含一个或多个.fpage文件。”。