有谁知道如何合并(连接)docx文档与PHP(或Python,如果在PHP中不可能)?
为了澄清,我的服务器是基于Linux的.我有2个现有的docx文档,我需要使用PHP或可能的Python将它们放在一个新的docx文档中.
我正在尝试对docx文件进行一些编辑...将数字转换成字母(即如果变量等于01 ='one',等于02 ='two',依此类推,但是用西班牙语).问题是变量f_dia_nom不起作用......它甚至不打印任何东西......我做错了什么?还是我错过了什么?
#!/usr/bin/env python2.6
from Tkinter import *
from docx import *
import tkMessageBox
root = Tk()
nombre = ""
exp_no = ""
ubic = ""
munic = ""
prov = ""
f_dia = ""
f_dia2 = ""
f_dia_nom = ""
def nombre_dia():
if f_dia2 == 1 or f_dia2 == 01:
f_dia_nom = "Un"
elif f_dia2 == 2 or f_dia2 == 02:
f_dia_nom = "Dos"
elif f_dia2 == 3 or f_dia2 == 03:
f_dia_nom = "Tres"
elif …Run Code Online (Sandbox Code Playgroud) 我有一个单词模板,它有多个相似的表格,一些段落与放在它们之前的那些表格相关联.根据数据量,我填充一些表,而其他表不是必需的,因此有段落.

我需要删除这些表和段落.正如您在图像中看到的,我需要删除表2及其段落Parahgraph
请帮我怎么做.我尝试使用document.removeBodyElement(pos),但它没有帮助.
int startIndex = 0;
int endIndex = 0;
startIndex = doc.getPosOfTable(doc.getTables().get(0));
startIndex++;
endIndex = doc.getPosOfTable(doc.getTables().get(1));
System.out.println("startIndex "+ startIndex);
System.out.println("endIndex "+ endIndex);
for(int i=startIndex; i<=endIndex; i++){
doc.removeBodyElement(i);
}
Run Code Online (Sandbox Code Playgroud) 我有一个像这样的文本块文本块SOMEBOLDTEXT + SOMEITALICTEXT + SOMEUNDERLINEDTEXT在一行中如何将这一行添加到单个wpf具有不同字体样式的段落(SOMEBOLDTEXT-Fontweight = Bold但不是斜体),(SOMEITALICTEXT - Fontstyle = italic但不是大胆的)...请提前建议一些解决方案
我正在尝试让我的程序能够在表单上显示Microsoft Word文件,但没有任何运气.我希望能够以只读方式打开文件并将其显示在表单上.所以基本上只是显示它的内容.Web上的各种用户都建议在WebBrowser控件中显示文件(在工具箱下).我试过这个但是没能让它运转起来.我的最终目标是能够在Web浏览器(或类似方式)上进行注释,然后将注释与打开的文件一起保存.
我对C#语言也不是很有经验,所以对如何实现我的问题的任何帮助都将非常感激.
我正在使用这种方法来生成docx文件:
public static void CreateDocument(string documentFileName, string text)
{
using (WordprocessingDocument wordDoc =
WordprocessingDocument.Create(documentFileName, WordprocessingDocumentType.Document))
{
MainDocumentPart mainPart = wordDoc.AddMainDocumentPart();
string docXml =
@"<?xml version=""1.0"" encoding=""UTF-8"" standalone=""yes""?>
<w:document xmlns:w=""http://schemas.openxmlformats.org/wordprocessingml/2006/main"">
<w:body><w:p><w:r><w:t>#REPLACE#</w:t></w:r></w:p></w:body>
</w:document>";
docXml = docXml.Replace("#REPLACE#", text);
using (Stream stream = mainPart.GetStream())
{
byte[] buf = (new UTF8Encoding()).GetBytes(docXml);
stream.Write(buf, 0, buf.Length);
}
}
}
Run Code Online (Sandbox Code Playgroud)
它就像一个魅力:
CreateDocument("test.docx", "Hello");
Run Code Online (Sandbox Code Playgroud)
但是,如果我想放置HTML内容而不是Hello?例如:
CreateDocument("test.docx", @"<html><head></head>
<body>
<h1>Hello</h1>
</body>
</html>");
Run Code Online (Sandbox Code Playgroud)
或类似这样的东西:
CreateDocument("test.docx", @"Hello<BR>
This is a simple text<BR>
Third paragraph<BR>
Sign
");
Run Code Online (Sandbox Code Playgroud)
两种情况都为创建了无效的结构document.xml …
我正在写一本字典.我正在使用python-docx将其放入MS Word中.我可以很容易地使它变得粗体或斜体,但似乎无法弄清楚如何做到这两点.这是基础知识:
import docx
word = 'Dictionary'
doc = docx.Document()
p = doc.add_paragraph()
p.add_run(word).bold = True
doc.save('test.docx')
Run Code Online (Sandbox Code Playgroud)
我试过p.add_run(word).bold.italic = True,但收到'NoneType'错误,我明白了.
我也在add_run之前和之后尝试了p.bold = True和p.italic = True,但是一起丢失了格式.
Word的查找/替换是一个简单的解决方案,但如果可以,我宁愿在代码中执行此操作.
我以编程方式将图像粘贴到docx中。但是结果是布局不适合我。面临缺乏文档的情况。我需要更改图像换行(布局)。例如现在我有这个:
但是要这样:
UPD1:我的工作:依次遍历各段,然后遍历各个运行,并找到带有特殊书签的特定运行。在此运行中,我添加图片:
XWPFPicture pic = run.addPicture(
new ByteArrayInputStream(picSource),
Document.PICTURE_TYPE_PNG,
"pic",
Units.toEMU(100),
Units.toEMU(30));
Run Code Online (Sandbox Code Playgroud)
UPD2:研究了此类内的一些有趣的东西:
org.openxmlformats.schemas.drawingml.x2006.wordprocessingDrawing.CTAnchor
Run Code Online (Sandbox Code Playgroud)
方法setWrapTight(CTWrapTight var1)。可能是这样。仍然不知道如何将其应用于我的代码。
UPD3:最终我来到了这里(currentRun-运行我们的图片):
CTWrapTight ctWrapTight = currentRun.getCTR().getDrawingList().get(0).addNewAnchor().addNewWrapTight();
CTWrapPath ctWrapPath = ctWrapTight.addNewWrapPolygon();
CTPoint2D ctStart = ctWrapPath.addNewStart();
ctStart.setX(0L);
ctStart.setY(0L);
CTPoint2D ctLineTo1 = ctWrapPath.addNewLineTo();
CTPoint2D ctLineTo2 = ctWrapPath.addNewLineTo();
CTPoint2D ctLineTo3 = ctWrapPath.addNewLineTo();
ctLineTo1.setX(21384L);
ctLineTo1.setY(20520L);
ctLineTo2.setX(21384L);
ctLineTo2.setY(0L);
ctLineTo3.setX(0L);
ctLineTo3.setY(0L);
ctWrapTight.setWrapText(STWrapText.BOTH_SIDES);
Run Code Online (Sandbox Code Playgroud)
但是当我尝试打开它时,它会分解文档:
我们很抱歉。我们无法打开文档,因为我们发现其内容存在问题。
依赖关系是:
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.17</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml-schemas</artifactId>
<version>3.17</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>ooxml-schemas</artifactId>
<version>1.3</version>
</dependency>
Run Code Online (Sandbox Code Playgroud) 我想逐段阅读docx文档,如果有图片(InlineShape),请使用其周围的文字进行处理。函数Document.inline_shapes将提供文档中所有内联形状的列表。但是我想得到一个,如果存在的话,它恰好出现在当前段落中...
代码示例:
from docx import Document
doc = Document("test.docx")
blip = doc.inline_shapes[0]._inline.graphic.graphicData.pic.blipFill.blip
rID = blip.embed
document_part = doc.part
image_part = document_part.related_parts[rID]
fr = open("test.png", "wb")
fr.write(image_part._blob)
fr.close()
Run Code Online (Sandbox Code Playgroud)
(这就是我要保存这些图片的方式)
docx ×10
c# ×4
apache-poi ×2
ms-word ×2
python ×2
python-docx ×2
.net ×1
image ×1
java ×1
numbers ×1
openxml ×1
paragraphs ×1
php ×1
python-3.x ×1
variables ×1
winforms ×1
wpf ×1
xwpf ×1