Java generates Word document

In the process of developing document systems or office systems, sometimes we need to export word documents. I found a function of generating word files with PageOffice on the Internet, and I took this out and shared it with you.

      Generating a word file is essentially the same as editing a word document, except that when generating a word document with a program, it is replaced by code. The following examples mainly include adding titles, text (paragraph, font, font size, double-line spacing, alignment, first line indentation, etc.), inserting pictures, etc. The content given in the example written here is only part of the methods for generating word files by the PageOffice component. If you need to use more methods, you need to check the API according to your actual needs. API address: http://www.zhuozhengsoft.com/help/java3/index.html

  View the objects and methods under the com.zhuozhengsoft.pageoffice.wordwriter package are used to generate word files

  

Then go directly to the code first:

copy code

1     PageOfficeCtrl poCtrl1 = new PageOfficeCtrl(request);
 2     poCtrl1.setServerPage(request.getContextPath()+"/poserver.zz");
 3 //Create a WordDocument object
 4     WordDocument doc = new WordDocument();
 5 //Set the content title
 6 //Create a DataRegion object, PO_title is the automatically added bookmark name, the bookmark name needs to be prefixed with "PO_", and the bookmark name cannot be repeated
 7 //The three parameters are the name of the bookmark to be newly inserted, the insertion position of the new bookmark, and the associated bookmark name ("[home]" represents the first position of the Word document)
 8     DataRegion title = doc.createDataRegion("PO_title",
 9             DataRegionInsertType.After, "[home]");
10 //Assign a value to the DataRegion object
11 title.setValue("Socket multi-threaded programming example in C#\n");
12 //Set the font: thickness, size, font name, whether it is italic
13     title.getFont().setBold(true);
14     title.getFont().setSize(20);
15 title.getFont().setName("bold");
16     title.getFont().setItalic(false);
17 //Define the paragraph object
18     ParagraphFormat titlePara = title.getParagraphFormat();
19 //Set paragraph alignment
20 titlePara.setAlignment(WdParagraphAlignment.wdAlignParagraphCenter);
21 //Set paragraph line spacing
22     titlePara.setLineSpacingRule(WdLineSpacing.wdLineSpaceMultiple);
23
24 //Set content
25 //First paragraph
26 //Create a DataRegion object, PO_body is the automatically added bookmark name
27     DataRegion body = doc.createDataRegion("PO_body",DataRegionInsertType.After, "PO_title");
28 //Set the font: thickness, italic, size, font name, font color
29     body.getFont().setBold(false);
30     body.getFont().setItalic(true);
31     body.getFont().setSize(10);
32 //Set the Chinese font name
33 body.getFont().setName("Italics");
34 //Set the English font name
35     body.getFont().setName("Times New Roman");
36     body.getFont().setColor(Color.RED);
37 //Assign a value to the DataRegion object
38 body.setValue(" is a new language introduced by Microsoft along with VS.net. As an emerging language, it has the robustness of C++ and the RAD features of VB. Moreover, the main purpose of Microsoft's introduction of C# is to In order to fight against Sun's Java. Everyone knows the powerful functions of the Java language, especially in network programming. Therefore, C# is naturally unwilling to lag behind in network programming. This article will introduce you to the implementation of sockets (Sockets) in C#. ) some basic knowledge of programming, in order to give you a general understanding of this. First, let me introduce you to the concept of sockets.\n");
39 //Create a ParagraphFormat object
40     ParagraphFormat bodyPara = body.getParagraphFormat();
41 //Set the line spacing, alignment, and first line indentation of the paragraph
42 bodyPara.setLineSpacingRule(WdLineSpacing.wdLineSpaceAtLeast);
43 bodyPara.setAlignment(WdParagraphAlignment.wdAlignParagraphLeft);
44 bodyPara.setFirstLineIndent(21);
45
46 //Second paragraph
47     DataRegion body2 = doc.createDataRegion("PO_body2",DataRegionInsertType.After, "PO_body");
48     body2.getFont().setBold(false);
49     body2.getFont().setSize(12);
50 body2.getFont().setName("bold");
51 body2.setValue("The socket is the cornerstone of communication and the basic operation unit of network communication that supports the TCP/IP protocol. The socket can be regarded as the endpoint for two-way communication between processes between different hosts, which constitutes a single The programming interface within the host and between the entire network. Sockets exist in the communication domain, which is an abstract concept introduced to deal with general thread communication through sockets. Sockets are usually associated with the same domain. Sockets exchange data (data exchanges may also cross domain boundaries, but in this case some kind of interpreter must be executed). Various processes use this same domain to communicate with each other using the Internet Protocol suite.\n") ;
52     //body2.setValue("[image]../images/logo.jpg[/image]");
53     ParagraphFormat bodyPara2 = body2.getParagraphFormat();
54 bodyPara2.setLineSpacingRule(WdLineSpacing.wdLineSpace1pt5);
55 bodyPara2.setAlignment(WdParagraphAlignment.wdAlignParagraphLeft);
56 bodyPara2.setFirstLineIndent(21);
57
58 //The third paragraph
59     DataRegion body3 = doc.createDataRegion("PO_body3", DataRegionInsertType.After, "PO_body2");
60     body3.getFont().setBold(false);
61     body3.getFont().setColor(Color.getHSBColor(0, 128, 228));
62     body3.getFont().setSize(14);
63 body3.getFont().setName("Chinese Color Cloud");
64 body3.setValue("Sockets can be classified according to the nature of communication, which is visible to users. Applications generally only communicate between sockets of the same class. However, as long as the underlying communication protocol allows, different types of Communication between sockets is also possible. There are two different types of sockets: stream sockets and datagram sockets.\n");
65     ParagraphFormat bodyPara3 = body3.getParagraphFormat();
66 bodyPara3.setLineSpacingRule(WdLineSpacing.wdLineSpaceDouble);
67 bodyPara3.setAlignment(WdParagraphAlignment.wdAlignParagraphLeft);
68 bodyPara3.setFirstLineIndent(21);
69
70 //The fourth paragraph, insert a picture
71     DataRegion body4 = doc.createDataRegion("PO_body4", DataRegionInsertType.After, "PO_body3");
72     body4.setValue("[image]doc/logo.png[/image]");
73 //body4.setValue("[word]doc/1.doc[/word]");//You can also embed other Word files
74     ParagraphFormat bodyPara4 = body4.getParagraphFormat();
75 bodyPara4.setAlignment(WdParagraphAlignment.wdAlignParagraphCenter);
76
77     poCtrl1.setWriter(doc);
78     poCtrl1.webOpen("doc/template.doc", OpenModeType.docNormalEdit,"张三");

copy code

  The problems that may be encountered during the development process are explained here.

  DataRegion (data region): The data region is the word bookmark starting with "PO_", which marks the position where the data is inserted in the file when the file is generated.

  Two special positions that do not need to be defined: [home]: indicates the position of the header of a word file; [end]: indicates the end position of the word file;

---------------------------------------------------------------------------------------------------------------------------------------------------  

  createDataRegion

  public DataRegion createDataRegion(java.lang.String newDataRegionName,
                                   DataRegionInsertType insertType,
                                   java.lang.String relativeDataRegionName)
                            throws java.lang.Exception,
                                   java.io.IOException

Creates a new data region and returns a DataRegion object.

Call this method to easily create and assign or control a new data area before or after the specified data area.

RelativeDataRegionName is generally a user-predefined data area that already exists in the document, but RelativeDataRegionName can also use two special data areas reserved by the PageOffice development platform: [HOME] and [END]. [HOME] and [END] do not need to be manually defined by the user when opening the document, they represent the starting cursor position and the ending cursor position of the document respectively.

If the current document is a blank document, and a data area does not exist, use [HOME] and [END] to generate a format document with pictures and texts from the blank document.

parameter:

newDataRegionName - The name of the new DataRegion. Note: You should make sure not to have the same name as a data area that already exists in the document.

insertType - Insertion method of new DataRegion.

relativeDataRegionName - Relative DataRegion name.

return:

Returns a DataRegion object.  

---------------------------------------------------------------------------------------------------------------------------------------------------

  When a blank word file is used as a template, there is no data area in the file. The following code creates a data area PO_title after the header of the word file, assigns the title content, and then creates it after the title A data area PO_body is assigned, and the content of the body is assigned:

1 DataRegion title = doc.createDataRegion("PO_title",DataRegionInsertType.After, "[home]");
2 title.setValue("Socket multi-threaded programming example in C#\n");
3 DataRegion body = doc.createDataRegion("PO_body",DataRegionInsertType.After, "PO_title");
4 body.setValue("It is a new language introduced by Microsoft with VS.net...");

  The rest of the code should need no explanation. Run the above program to generate the word file as shown in the figure below.

  

  Source code download: http://www.zhuozhengsoft.com/dowm/ Download PageOffice for Java, after decompression, copy the Samples4 folder to the Webapps directory of Tomcat, visit: http://localhost:8080/Samples4/index.html

  View the example: 3. 7. Completely programmed to dynamically generate Word files

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=326126347&siteId=291194637