我们有CAD软件将数据输出到.pdf
,但在此之前,你必须指定一个'xml样式表'用于格式化该pdf。
我还没有访问该软件,所以我所拥有的是他们一直使用的默认.xsl
文件以及使用它创建的示例pdf。 pdf包含他们想要删除的内容,例如图像,这是我进入的地方。
根据我的理解,.xsl不能独立,而是需要从.xml本身链接,但我没有.xml文件,所以我必须在假设这是在软件内部化,它在输出pdf之前动态应用样式表。但也许我的理解是错误的,也许可以使用.xsl而不是.xml?
根据这些信息,隔离他们不想要的元素并通过.xsl删除它的最佳方法是什么?我确实在代码中的不同位置看到了“图像”的提及,但我真的只是盲目地删除部分而不考虑实际发生的事情。我知道必须有更复杂的方法来做到这一点。
为了记录,我之前从未使用过.xsl,这没有帮助,但我确实有.xml的经验,但没有过于复杂......像网页等简单的东西。非常感谢任何帮助,因为这对我来说都是新的。
对于那些感兴趣的人,这里是代码(15,000行):http://tny.cz/3c8394f0
答案 0 :(得分:2)
.xsl文件包含所谓的“xslt样式表”,它是一种将XML转换为某种东西(通常是XML,HTML或文本)的程序。它本身就是一个XML文件。
有时,工具会提供包含对某些外部样式表的引用的XML,但这当然不是必需的,而且通常也没用,因为您可能希望使用相同的xml源作为不同xslt样式表的输入。
老实说,如果您之前从未见过xslt,您可能会发现对生成的pdf进行更改很有挑战性。这当然不是不可能的,特别是如果你在声明性编程方面有一些经验,但xslt真的不同于“标准”编程语言。暴露在Java或Python中可能没有多大帮助。
我首先要查找应删除的信息中的静态文本片段。但只是为了找到以后可能改变的地方,因为老实说,我不会在没有测试它们的情况下开始进行更改。用任何语言。
答案 1 :(得分:2)
首先,修改样式表的机制。基本上有两种方法可以做到:您可以将修改后的样式表放在CAD软件正在查找的位置,或者您可以将其显示在其他位置。事实上,在你的文字中,你必须指定一个' xml样式表'使用"建议让CAD软件执行修改后的样式表不应该太困难。
其次,假设您可以运行修改后的样式表,您如何进行更改?您需要了解其输入和输出。如果文档很差,那么您可能需要进行一些逆向工程。作为第一个诊断步骤,您可以尝试修改样式表以显示其输入。甚至在该步骤之前,您可以尝试使用xsl:message指令对其进行修改,以查看xsl:message输出是否有用。
所有这一切的前提是你需要学习一些XSLT。我们生活中某个阶段的所有人都试图修改用我们不理解的语言编写的程序,这是一场噩梦。发生的第一件事就是你得到一条错误信息,说明你已经破坏了哪些规则,而你却不知道它在说什么,因为它是用你从来没有过的概念来表达的。碰到了。