I am writing a web application in Golang, in which user can upload a doc or docx file. Some of the file contents will be changed according to a predefined format. Later user can download the changed file either in docx or in pdf format. Now my application accepts only docx file, change the file according to predefined format and let the user download it back in docx format itself. Are there any packages available in golang to convert doc to docx and docx to pdf?
Asked
Active
Viewed 9,106 times
2
-
are you using linux or windows? – codefreak Mar 30 '16 at 14:04
-
@codefreak I am using Linux. – Arjun Ajith Mar 30 '16 at 15:19
-
1You can use a linux cmd utility for doc 2 pdf see http://stackoverflow.com/questions/21203626/is-there-any-gnu-linux-command-line-utility-that-converts-docx-files-to-pdf. Once installed and working, you can call that utility by executing os.Exec function. – codefreak Mar 31 '16 at 09:37
2 Answers
3
As I am using linux ubuntu OS Hugo's answer didn't help me(But I recommend it for the windows users). But it gave me an idea about how to solve this problem. codefreak's comment on the question gave me a clear picture. I used both of their advice and result was the use of LibreOffice for the convertion.
arg0 := "lowriter"
arg1 := "--invisible" //This command is optional, it will help to disable the splash screen of LibreOffice.
arg2 := "--convert-to"
arg3 := "pdf:writer_pdf_Export"
path := "/home/user/Test.docx"
nout, err := exec.Command(arg0,arg1,arg2,arg3,path).Output()
This code will call LibreOffice and convert .docx file into .pdf. This is the easiest method as far as I know. Please post other answers which may help future readers.

Arjun Ajith
- 1,850
- 5
- 21
- 46
-
If you are not using Libreoffice then arg0 may change accordingly. For example, **oowriter** or **sowriter** for OpenOffice. Check **oowriter --help** in terminal for the invisibility command(Not sure about others having one.). – Arjun Ajith Apr 01 '16 at 04:45
-
For arg0, I am using "soffice", also, you may need to add arg4 and arg5 of "--outdir" in case you need to save file in other position. – Zhang Buzz Dec 09 '18 at 00:25
-