Application.java 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. package com.wzkj.zhai.contact;
  2. import com.spire.doc.Document;
  3. import com.spire.doc.FileFormat;
  4. import com.spire.doc.Section;
  5. import com.spire.doc.documents.Paragraph;
  6. import org.apache.commons.io.FilenameUtils;
  7. import java.io.File;
  8. import java.nio.file.Paths;
  9. public class Application {
  10. public static void main(String[] args) {
  11. String dir = "";
  12. String origin = "";
  13. if (args.length == 2) {
  14. origin = args[0];
  15. dir = args[1];
  16. } else {
  17. System.out.printf("参悟不足,origin(%s), dir(%s)\n", origin, dir);
  18. return;
  19. }
  20. parseOrigin(origin, dir);
  21. }
  22. public static void parseOrigin(String origin, String dir) {
  23. Document document = new Document(origin);
  24. Document newDoc = new Document();
  25. String text = document.getText();
  26. String[] lines = text.split("\n");
  27. String source = "";
  28. String target = "";
  29. int index = 0;
  30. Section section = newDoc.addSection();
  31. for (int i = 0; i < lines.length; i ++, index ++) {
  32. String line = lines[i].trim();
  33. if (line.equals("")) {
  34. continue;
  35. }
  36. Paragraph paragraph = section.addParagraph();
  37. paragraph.appendText(line);
  38. System.out.printf("index: %d, line: %s, source: %s, target: %s\n", index, line, source, target);
  39. if (index < 2) {
  40. continue;
  41. }
  42. if (2 == index) {
  43. source = line;
  44. continue;
  45. }
  46. if (3 == index) {
  47. target = line;
  48. index = -1;
  49. }
  50. System.out.printf("source: %s, target: %s\n", source, target);
  51. merge(newDoc, dir, source, target);
  52. source = "";
  53. target = "";
  54. }
  55. String newName = origin.replace(".docx", "-r.docx") ;;
  56. newDoc.saveToFile(newName, FileFormat.Docx_2013);
  57. }
  58. public static void merge(Document newDoc, String dir, String source, String target) {
  59. source = source + ".docx";
  60. target = target + ".docx";
  61. //获取第一个文档的路径
  62. String filePath1 = Paths.get(dir, source).toString();
  63. //获取第二个文档的路径
  64. String filePath2 = Paths.get(dir, target).toString();
  65. //使用insertTextFromFile方法将第二个文档的内容插入到第一个文档
  66. newDoc.insertTextFromFile(filePath1, FileFormat.Docx_2013);
  67. newDoc.insertTextFromFile(filePath2, FileFormat.Docx_2013);
  68. }
  69. }