2

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?

Arjun Ajith
  • 1,850
  • 5
  • 21
  • 46

2 Answers2

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
  • On Fedora 31 it was `libreoffice` instead of lowriter – blackhawk4152 Apr 16 '20 at 18:35
2

This will work over windows, as it is using the windows functions

https://github.com/piaobocpp/doc2pdf-go

Hugo
  • 254
  • 2
  • 6