| /* PDF Rasterizer Package |
| |
| This package provides the Pdfium and Poppler rasterizers. Pdfium |
| requires the `pdfium_test` executable be located in the PATH. Poppler |
| requires `pdftoppm` (provided by poppler-utils) and `pnmtopng` |
| (provided by netpbm). */ |
| |
| package pdf |
| |
| type Rasterizer interface { |
| // Rasterize will take the path to a PDF file and rasterize the |
| // file. If the file has multiple pages, discard all but the first |
| // page. The output file will be in PNG format. |
| Rasterize(pdfInputPath, pngOutputPath string) error |
| // Return the name of this rasterizer. |
| String() string |
| // Return false if the rasterizer is found. |
| Enabled() bool |
| } |
| |
| // GetEnabledRasterizers returns the list of enabled rasterizers based on |
| // the executables installed on the host machine. |
| func GetEnabledRasterizers() []Rasterizer { |
| ret := []Rasterizer{} |
| for _, raster := range []Rasterizer{Pdfium{}, Poppler{}} { |
| if raster.Enabled() { |
| ret = append(ret, raster) |
| } |
| } |
| return ret |
| } |