标签: docx

使用DOCX报告 - > PDF格式

我必须操作docx文档,只是为了替换一些$变量,并且需要在将其发送给最终用户之前将其转换为PDF格式.我正在使用Java开发一个使用SpringFramework的webapp.

我一直在网上搜索一些可以帮助我完成这项任务的库,我找到了一个似乎处于早期开发阶段的xdocreport.你知道这个任务的其他Java库吗?

java pdf-generation report docx

2
推荐指数
1
解决办法
4933
查看次数

python - TypeError:'dict'对象不可调用

我正在使用python库docx:http://github.com/mikemaccana/python-docx

我的目标是打开一个文件,替换某些单词,然后用替换文件写入该文件.

我目前的代码:

#! /usr/bin/python

from docx import *

openDoc = "test.docx"
writeDoc = "test2.docx"
replace = {"Test":"TEST"}

document = opendocx(openDoc)
docbody = document.xpath('/w:document/w:body', namespaces=nsprefixes)[0]

print getdocumenttext(document)

for key in replace:
    if search(docbody, key):
        print "Found" , key , "replacing with" , replace[key]
        docbody = replace(docbody,key,replace[key])

print getdocumenttext(document)

# ideally just want to mirror current document details here..
relationships = relationshiplist()
coreprops = coreproperties(title='',subject='',creator='',keywords=[])

savedocx(document,coreprops,appproperties(),contenttypes(),websettings(),wordrelationships(relationships),'a.docx')
Run Code Online (Sandbox Code Playgroud)

`但是我收到以下错误:

Traceback (most recent call last):
  File "process.py", line 17, in <module> …
Run Code Online (Sandbox Code Playgroud)

python docx typeerror python-docx

2
推荐指数
1
解决办法
9918
查看次数

docx4j找到并替换

我有一些占位符的docx文档.现在我应该用其他内容替换它们并保存新的docx文档.我从docx4j开始,发现了这个方法:

public static List<Object> getAllElementFromObject(Object obj, Class<?> toSearch) {
    List<Object> result = new ArrayList<Object>();
    if (obj instanceof JAXBElement) obj = ((JAXBElement<?>) obj).getValue();

    if (obj.getClass().equals(toSearch))
        result.add(obj);
    else if (obj instanceof ContentAccessor) {
        List<?> children = ((ContentAccessor) obj).getContent();
        for (Object child : children) {
            result.addAll(getAllElementFromObject(child, toSearch));
        }
    }
    return result;
}

public static void findAndReplace(WordprocessingMLPackage doc, String toFind, String replacer){
    List<Object> paragraphs = getAllElementFromObject(doc.getMainDocumentPart(), P.class);
    for(Object par : paragraphs){
        P p = (P) par;
        List<Object> texts = getAllElementFromObject(p, Text.class);
        for(Object …
Run Code Online (Sandbox Code Playgroud)

java docx docx4j

2
推荐指数
3
解决办法
1万
查看次数

Docx:似乎无法获得要呈现的项目符号列表

我正在使用 XML 从头开始​​构建 DocX 文档。我有一个非常简单的目标:创建一个项目符号列表,就像ulHTML 中的a 一样。阅读编号列表WordProcessingML 规范(第 2.9 节),我创建了我认为可以满足此要求的内容。这是我的numbering.xml样子:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<w:numbering xmlns:m="http://schemas.openxmlformats.org/officeDocument/2006/math" xmlns:mo="http://schemas.microsoft.com/office/mac/office/2008/main" xmlns:mv="urn:schemas-microsoft-com:mac:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:ve="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:wne="http://schemas.microsoft.com/office/word/2006/wordml" xmlns:wp="http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing">
  <w:abstractNum w:abstractNumId="1">
    <w:multiLevelType w:val="singleLevel"/>
    <w:lvl w:ilvl="0">
      <w:start w:val="1"/>
      <w:numFmt w:val="bullet"/>
      <w:lvlText w:val="&#8226;"/>
      <w:lvlJc w:val="left"/>
      <w:pPr>
        <w:tabs>
          <w:tab w:pos="360" w:val="num"/>
        </w:tabs>
        <w:ind w:hanging="360" w:left="360"/>
      </w:pPr>
      <w:rPr>
        <w:rFonts w:ascii="Symbol" w:hAnsi="Symbol" w:hint="default"/>
      </w:rPr>
    </w:lvl>
  </w:abstractNum>
  <w:num w:numId="1">
    <w:abstractNumId w:val="1"/>
  </w:num>
</w:numbering>
Run Code Online (Sandbox Code Playgroud)

所以我有一个 id 为 1 的抽象编号,定义为带有一些缩进的单个级别和一个项目符号作为 lvlText(符号&#8226;呈现为 …

docx wordprocessingml

2
推荐指数
1
解决办法
2330
查看次数

从 xml 文件重建 docx

据我所知,docx 文件是 xml 文件的压缩集合。在 Windows 7(我尝试过此操作的唯一操作系统)上,如果我保存文件,从 Word 说 f.docx,然后退出 Word 并将文件名更改为 f.zip,我可以解压缩包并阅读组件文件。但是,如果我随后删除并重新压缩 f 文件夹(不进行任何修改)并将扩展名更改回 docx,则会收到一条错误消息,指出“文件 f.docx 无法打开,因为内容存在问题”。当我查看详细信息时,它说“Microsoft Office 无法打开此文件,因为某些部分丢失或无效。”

问题:这是为什么?又如何完成各个部分重新组合成一个有效的docx文件?

这里提出一个类似的问题但提供的解决方案不起作用。正如我上面提到的,我没有更改文件夹中的任何内容,甚至也没有打开文件。虽然我不明白为什么它会相关,但我重新压缩文件的方法是使用上下文菜单命令“发送到压缩(zipped)文件夹”。

xml zip docx

2
推荐指数
1
解决办法
3773
查看次数

Python docx add_paragraph()插入前导换行符

我可以使用段落对象在表格单元格中选择字体大小,颜色,粗体等.但是,add_paragraph()似乎总是将一个前导\n插入到单元格中,这会混淆某些表格上的格式.

如果我只是使用该cell.text('')方法,它不会插入此换行符,但我无法控制文本属性.

有没有办法消除这个领先的换行线?

这是我的功能:

def add_table_cell(table, row, col, text, fontSize=8, r=0, g=0, b=0, width=-1):
    cell = table.cell(row,col)
    if (width!=-1):
    cell.width = Inches(width)
    para = cell.add_paragraph(style=None)
    para.alignment = WD_ALIGN_PARAGRAPH.LEFT
    run = para.add_run(text)
    run.bold = False
    run.font.size = Pt(fontSize)
    run.font.color.type == MSO_COLOR_TYPE.RGB
    run.font.color.rgb = RGBColor(r, g, b)
Run Code Online (Sandbox Code Playgroud)

python docx python-docx

2
推荐指数
1
解决办法
3196
查看次数

如何将 xml 转换为 docx?

我正在使用meteor 开发一个应用程序,需要替换docx 文档中的特定单词。我找到了一种将 docx 文件转换为 xml 的方法,我需要进行的替换发生在 xml 文件中。

问题是,替换xml中的那些词后,如何恢复docx-document?

xml docx meteor

2
推荐指数
1
解决办法
6887
查看次数

如何更改 phpword 中的字体(名称、大小、行距)?

您能否告诉我是否可以将 docx 文档加载到 phpword,然后更改加载的文档中的字体名称、大小、行距,然后将其保存到另一个 docx 文件中?

我现在正在阅读 phpword 官方 docx,但正如我所见,创建一个新文档(例如,通过段落的某些字体名称、大小和行间距设置)比更改加载的文档要多得多。或者也许我错了?

那么是否可以为加载的文档更改这些“字体设置”?或者也许可以对加载的文档进行一些解析,例如对所有段落进行一些解析,然后为每个文本段落更改“字体设置”?

预先感谢您的帮助!

真诚的你,

阿尔韦苏

php linux fonts docx phpword

2
推荐指数
1
解决办法
8100
查看次数

JodConverter 不支持 java 中的 docx 文件

我正在使用 JodConverter 将我的 .docx (Microsoft Office) 文件转换为 pdf 但不知何故它没有隐藏并给我错误。版本 2.2.0 。

我的问题是是否可以使用 JODCoverter 将 .docx 文件转换为 pdf?

docx jodconverter

2
推荐指数
1
解决办法
3894
查看次数

Jinja docx模板,避免为嵌套新行

我想知道是否有一种方法可以避免在Jinja的docx模板中的for中使用换行符。代码如下:

{% for customer in customers %}
{% for account in customer.accounts %}
{{ account.number }}
{% endfor %}{% endfor %}. 
Run Code Online (Sandbox Code Playgroud)

但是结果是帐号被行隔开:

234090

29292

29292

我正在LibreOffice上进行测试。

有人可以帮我吗?

python docx jinja2

2
推荐指数
2
解决办法
3912
查看次数