我试图从word文档中获取纯文本.具体来说,xpath给了我麻烦.你如何选择标签?这是我的代码.
public static string TextDump(Package package)
{
StringBuilder builder = new StringBuilder();
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(package.GetPart(new Uri("/word/document.xml", UriKind.Relative)).GetStream());
foreach (XmlNode node in xmlDoc.SelectNodes("/descendant::w:t"))
{
builder.AppendLine(node.InnerText);
}
return builder.ToString();
}
Run Code Online (Sandbox Code Playgroud) 我的预期结果是:
但当我使用以下代码时:
MainDocumentPart mainDocumentPart =
package.AddMainDocumentPart();
DocumentFormat.OpenXml.Wordprocessing.Document elementW =
new DocumentFormat.OpenXml.Wordprocessing.Document(
new Body(
new DocumentFormat.OpenXml.Wordprocessing.Paragraph(
new NumberingProperties(
new NumberingLevelReference() { Val = 0 },
new NumberingId() { Val = 1 })
),
new Run(
new RunProperties(),
new Text("Hello, ") { Space = new DocumentFormat.OpenXml.EnumValue<DocumentFormat.OpenXml.SpaceProcessingModeValues> { InnerText = "preserve" } })),
new DocumentFormat.OpenXml.Wordprocessing.Paragraph(
new ParagraphProperties(
new NumberingProperties(
new NumberingLevelReference() { Val = 0 },
new NumberingId() { Val = 1 })),
new Run(
new RunProperties(),
new Text("world!")
{
Space …Run Code Online (Sandbox Code Playgroud) 如何在Java中打开Microsoft Word docx文件?此外,如果密码保护,我怎么能打开它?
例如,
File f = new File("hello.docx");
Run Code Online (Sandbox Code Playgroud)
请尽量避免回答"你不应该这样做"的事情.我有充分的理由,所以当你回答时请坚持这个问题.非常感谢!
当您打开Word时,它允许您另存为Word Open XML格式。我看到过有关以zip格式打开docx文件,然后从中提取内容的帖子。但是我真正想要的是一种将docx转换为单个XML的方法,就像在MS Office中执行“另存为”操作时一样。该怎么办?
以及如何针对.doc格式执行此操作?
注意:我想以编程方式执行此操作。最好在Linux开发条件下使用PHP。但是,如果那不可用,那么其他语言也可以。最后,如果要解决这个问题,我可以考虑旋转Windows服务器来执行此操作。
有没有办法用 Python 有效地获取 word 文档(.doc、.docx)的页数?
对于 .odt 文件?
我想将它用于 Linux 上基于 Web2py 的 Web 应用程序。
谢谢 !
基于这里的脚本:.doc到pdf使用python我有一个半工作脚本将.docx文件从C:\ Export_to_pdf导出到pdf到一个新文件夹.
问题是它通过前几个文件然后失败:
(-2147352567, 'Exception occurred.', (0, u'Microsoft Word', u'Command failed', u'wdmain11.chm', 36966, -2146824090), None)
Run Code Online (Sandbox Code Playgroud)
这显然是一个无益的一般错误信息.如果我使用pdb慢慢调试它,我可以遍历所有文件并成功导出.如果我也关注Windows任务管理器中的进程,我可以看到WINWORD启动然后在应该结束时结束,但是在较大的文件上,内存使用需要更长时间才能稳定.这让我觉得,当在client.Dispatch对象上调用下一个方法之前,WINWORD没有时间初始化或退出时,脚本会跳闸.
是否有一种方法可以使用win32com或comtypes来识别并等待进程启动或完成?
我的剧本:
import os
from win32com import client
folder = "C:\\Export_to_pdf"
file_type = 'docx'
out_folder = folder + "\\PDF"
os.chdir(folder)
if not os.path.exists(out_folder):
print 'Creating output folder...'
os.makedirs(out_folder)
print out_folder, 'created.'
else:
print out_folder, 'already exists.\n'
for files in os.listdir("."):
if files.endswith(".docx"):
print files
print '\n\n'
try:
for files in os.listdir("."):
if files.endswith(".docx"):
out_name = files.replace(file_type, r"pdf")
in_file = os.path.abspath(folder + "\\" …Run Code Online (Sandbox Code Playgroud) 我已经阅读了doc文件,现在我正在尝试阅读docx文件内容.当我搜索样本代码时,我发现很多,没有任何效果.检查代码以供参考......
import java.io.*;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.extractor.XWPFWordExtractor;
import com.itextpdf.text.pdf.PdfWriter;
import com.itextpdf.text.Document;
import com.itextpdf.text.Paragraph;
public class createPdfForDocx {
public static void main(String[] args) {
InputStream fs = null;
Document document = new Document();
XWPFWordExtractor extractor = null ;
try {
fs = new FileInputStream("C:\\DATASTORE\\test.docx");
//XWPFDocument hdoc=new XWPFDocument(fs);
XWPFDocument hdoc=new XWPFDocument(OPCPackage.open(fs));
//XWPFDocument hdoc=new XWPFDocument(fs);
extractor = new XWPFWordExtractor(hdoc);
OutputStream fileOutput = new FileOutputStream(new File("C:/DATASTORE/test.pdf"));
PdfWriter.getInstance(document, fileOutput);
document.open();
String fileData=extractor.getText();
System.out.println(fileData);
document.add(new Paragraph(fileData));
System.out.println(" pdf document created");
} catch(IOException e) {
System.out.println("IO Exception"); …Run Code Online (Sandbox Code Playgroud) 我想使用 jinja2 进行单词模板,就像这篇短文中提到的那样。我面临的问题如下,如果我放入{{title}}我的 word 文件,生成的 xml 可能如下所示:
<w:r><w:t>{{</w:t></w:r><w:proofErr w:type="gramStart"/><w:r><w:t>title</w:t></w:r><w:proofErr w:type="gramEnd"/><w:r><w:t>}}</w:t></w:r></w:p>
Run Code Online (Sandbox Code Playgroud)
所以jinja不可能相应地替换它。是否有可能防止单词{{title}}在单独的文本元素中拆分?(如果我从文本编辑器复制它工作正常)
我需要创建一个应用程序,它从字段中生成自动生成的CV.我需要将它们转换为PDF/HTML/DOC,但有许多宝石可用.
您认为哪种宝石最适合制作PDF,HTML和DOC格式的简历?
我找到了PDF的大虾,但它是否最适合制作类似CV的PDF?
先感谢您.
编辑:我找到了一个类似于Prawn的宝石,但是对于docx,也许你会感兴趣. https://github.com/trade-informatics/caracal/
这是我的代码:
import docx
doc = docx.Document()
doc.add_paragraph('This is on first page!')
doc.paragraphs[0].runs[0].add_break(docx.text.WD_BREAK.PAGE)
doc.add_paragraph('This is on the second page!')
doc.save('twoPage.docx')
Run Code Online (Sandbox Code Playgroud)
错误是:
AttributeError: 'module' object has no attribute 'WD_BREAK'
Run Code Online (Sandbox Code Playgroud)