Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ms word 如何判断.doc是否由LibreOffice创建?_Ms Word_Libreoffice_Doc - Fatal编程技术网

Ms word 如何判断.doc是否由LibreOffice创建?

Ms word 如何判断.doc是否由LibreOffice创建?,ms-word,libreoffice,doc,Ms Word,Libreoffice,Doc,我正在研究LibreOffice/Word的一种编程/自动解决方案,它会导致LibreOffice保存的最后一行.doc文件在Word中查看时被截断。由于文档的数量和Word纯用户的数量,这可能比用户教育更容易 我有数千个文档要处理,虽然我可以将“修复”应用于所有文档,但我更愿意将其仅限于LibreOffice保存的文档 文件中是否有元数据或其他特征可以(可靠地)告诉我Word格式文档是否最初由LibreOffice创建?over at Superuser建议进行字符串搜索,以确定哪个版本的Mi

我正在研究LibreOffice/Word的一种编程/自动解决方案,它会导致LibreOffice保存的最后一行.doc文件在Word中查看时被截断。由于文档的数量和Word纯用户的数量,这可能比用户教育更容易

我有数千个文档要处理,虽然我可以将“修复”应用于所有文档,但我更愿意将其仅限于LibreOffice保存的文档

文件中是否有元数据或其他特征可以(可靠地)告诉我Word格式文档是否最初由LibreOffice创建?

over at Superuser建议进行字符串搜索,以确定哪个版本的Microsoft Word编辑了该文件。所以我看了看里面是否还有其他东西,在版本字符串所在的位置附近找到了字符串

Microsoft Word Dokument
-在LibreOffice.doc文件中

Microsoft Word 97-2003文档
-在Microsoft保存的文件中

在Word中打开并重新保存LibreOffice.doc会更改字符串,反之亦然。所以这可能是你的解决方案

关于所有版本的MS Office和Libre/OpenOffice是否使用相同的字符串,仍然存在一个问题,但至少这是一个开始


您是如何搜索的,我留给您决定。

您是否考虑过将所有文档转换为
.docx
.odt
?这些格式更易于操作,因为它们可以解压并修改为XML。@JimK-是的,这实际上是我对有问题的文档所做的修复,但因为我不是文档的创建者(它们来自外部源)如果能够在我能看到的需要转换的文件上运行批处理操作,那就太好了。否则,我将转换数千个不需要它的人,以捕获几十个需要它的人!