{"id":17724548,"url":"https://github.com/liumapp/simple-convert","last_synced_at":"2025-10-30T11:44:56.819Z","repository":{"id":57726261,"uuid":"180494472","full_name":"liumapp/simple-convert","owner":"liumapp","description":"基于aspose.word的Java文档转换项目，不需要依赖私服Jar包","archived":false,"fork":false,"pushed_at":"2019-04-26T01:37:27.000Z","size":15345,"stargazers_count":5,"open_issues_count":0,"forks_count":3,"subscribers_count":1,"default_branch":"master","last_synced_at":"2023-07-01T12:08:54.370Z","etag":null,"topics":["aspose","java","pdf","word"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/liumapp.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-04-10T03:26:54.000Z","updated_at":"2021-12-16T02:59:20.000Z","dependencies_parsed_at":"2022-09-17T14:00:21.059Z","dependency_job_id":null,"html_url":"https://github.com/liumapp/simple-convert","commit_stats":null,"previous_names":[],"tags_count":3,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/liumapp%2Fsimple-convert","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/liumapp%2Fsimple-convert/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/liumapp%2Fsimple-convert/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/liumapp%2Fsimple-convert/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/liumapp","download_url":"https://codeload.github.com/liumapp/simple-convert/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243532517,"owners_count":20306151,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aspose","java","pdf","word"],"created_at":"2024-10-25T15:47:11.467Z","updated_at":"2025-10-30T11:44:51.780Z","avatar_url":"https://github.com/liumapp.png","language":"Java","readme":"# simple-convert\n基于aspose.word的Java文档转换项目，不需要依赖私服Jar包\n\n## 如何使用\n\n* 使用Maven下载依赖\n    \n    ````mxml\n        \u003cdependency\u003e\n          \u003cgroupId\u003ecom.liumapp.simple.convert\u003c/groupId\u003e\n          \u003cartifactId\u003esimple-convert\u003c/artifactId\u003e\n          \u003cversion\u003ev1.0.0\u003c/version\u003e\n        \u003c/dependency\u003e\n    ````\n    \n* 拷贝repo目录到本地项目中，否则会提示找不到aspose的jar包\n\n    当然，您也可以自行将libs目录下的aspose这个jar包部署到自己的nexus私服或者导入maven的本地仓库中\n\n* html转doc\n\n    * 通过文件目录转换\n    \n        ````java\n            BasicConverter converter = new HtmlToPdfConverterFactory().getInstance();\n            String htmlFilePath = HtmlToPdfConverterTest.class.getClassLoader().getResource(\"test.html\").getPath();\n            String pdfResultPath = \"./result.pdf\";\n            converter.convertByFilePath(htmlFilePath, pdfResultPath);\n        ````\n    \n        执行后将htmlFilePath所指向的html文件转换为pdf文件，并保存在pdfResultPath路径下\n        \n    * 通过输入流转换\n    \n        ````java\n            BasicConverter converter = new HtmlToPdfConverterFactory().getInstance();\n            String targetFilePath = HtmlToPdfConverterTest.class.getClassLoader().getResource(\"test.html\").getPath();\n            InputStream is = new FileInputStream(targetFilePath);\n            OutputStream os = new FileOutputStream(new File(\"./result2.pdf\"));\n            converter.convertByStream(is, os);\n            os.flush();\n            is.close();\n            os.close();\n        ````\n        \n        将要转换的html文件作为输入流输出，输出流为要存储的pdf文件输出流，也可以使用ByteArrayOutputStream暂存在内存中\n    \n    * 通过base64转换\n    \n        ````java\n            BasicConverter converter = new HtmlToPdfConverterFactory().getInstance();\n            String targetFilePath = HtmlToPdfConverterTest.class.getClassLoader().getResource(\"test.html\").getPath();\n            InputStream is = new FileInputStream(targetFilePath);\n            String inputBase64 = Base64FileTool.inputStreamToBase64(is);\n            String resultBase64 = converter.convertByBase64(inputBase64);\n            is.close();\n        ````\n    \n        inputBase64为html文件内容的base64值，输出的resultBase64为转换后的pdf base64值\n        \n    * 直接传入html字符串转pdf文件\n    \n        同通过base64转换一样，将html字符串加密为base64值，将转换后的base64解密存储即可得到pdf文件\n        \n        ````java\n             BasicConverter converter = new HtmlToPdfConverterFactory().getInstance();\n             String htmlContents = \"\u003ch3\u003e你的第一个html转PDF文档出来啦！！\u003c/h3\u003e\\n\" +\n                     \"\u003cbr\u003e\\n\" +\n                     \"\u003cdiv style=\\\"color: aquamarine\\\"\u003e\\n\" +\n                     \"    注意：html5以及css3的支持还不够完善！！！\\n\" +\n                     \"\u003c/div\u003e\\n\";\n             String inputBase64 = Base64.getEncoder().encodeToString(htmlContents.getBytes());\n             String resultBase64 = converter.convertByBase64(inputBase64);\n             Base64FileTool.saveBase64File(resultBase64, \"./result10.pdf\");\n        ````    \n        \n        Base64FileTool这个类来自于qtools-file依赖    \n    \n* doc转pdf\n\n    * 通过文件目录转换 \n\n      ````java\n          BasicConverter converter = new DocToPdfConverterFactory().getInstance();\n          converter.convertByFilePath(\"./data/test.doc\", \"./result4.pdf\");\n      ````    \n    \n    * 通过输入流转换\n    \n        ````java\n            BasicConverter converter = new DocToPdfConverterFactory().getInstance();\n            FileInputStream is = new FileInputStream(\"./data/test.doc\");\n            FileOutputStream os = new FileOutputStream(\"./result5.pdf\");\n            converter.convertByStream(is, os);\n            is.close();\n            os.close();  \n        ````\n        \n## 注意事项\n\n* 在pom.xml中，不要使用system scope引入jar包，而要通过在项目设立一个maven本地仓库：repo目录，将所需要的第三方jar包deploy进去（不能直接从maven下载，原因你懂的）\n\n    * system scope引入的包，在使用jar-with-dependencies打包时将不会被包含，可以使用resources将本地包打进jar-with-dependencies\n    \n    * 关于本地repositor的创建和使用，可以参考 [这里](http://www.liumapp.com/articles/2019/04/12/1555053553824.html)\n    \n* html转PDF的功能还不够完善，不能完美支持：html5 + css3（或者说能够完美支持html5 + css3的破解版本还没有出来）\n\n* 所有转换默认是以A4纸作为最终的PDF页面大小，如果要进行更改的话，请直接使用BasicConverter的getDocument和getDocumentBuilder方法，在获取到Document对象或者DocumentBuilder对象后，修改pageSetup的相关属性，具体请参考aspose的[文档](https://apireference.aspose.com/java/words)\n\n    或者直接参考这一段代码：\n    \n    ````java\n        BasicConverter converter = new HtmlToPdfConverterFactory().getInstance();\n        DocumentBuilder builder = converter.getDocumentBuilder();\n        PageSetup pageSetup = builder.getPageSetup();\n        pageSetup.setPageWidth(2000);\n        pageSetup.setPageHeight(100);\n        String htmlFilePath = HtmlToPdfConverterTest.class.getClassLoader().getResource(\"test.html\").getPath();\n        String pdfResultPath = \"./result11.pdf\";\n        converter.convertByFilePath(htmlFilePath, pdfResultPath);\n        assertEquals(true, FileTool.isFileExists(\"./result11.pdf\"));\n    ````\n\n\n\n\n\n    \n    \n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fliumapp%2Fsimple-convert","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fliumapp%2Fsimple-convert","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fliumapp%2Fsimple-convert/lists"}