Open rorycl opened 4 years ago
The following code on v1.0.11:
package main import ( "fmt" "github.com/phpdave11/gofpdf" "github.com/phpdave11/gofpdf/contrib/gofpdi" "io" "io/ioutil" "net/http" "os" rpdf "rsc.io/pdf" ) const PDF_WIDTH_IN_MM = 222.6264 const PDF_HEIGHT_IN_MM = 297.0000 const MM_TO_RMPOINTS = 2.83465 var Verbose bool = true var url string = "http://www.campbell-lange.net/media/files/example5.pdf" func main() { resp, err := http.Get(url) if err != nil { panic(err) } defer resp.Body.Close() tmpFile, err := ioutil.TempFile(os.TempDir(), "pdfexample-") if err != nil { panic(err) } filer := tmpFile.Name() defer os.Remove(filer) _, err = io.Copy(tmpFile, resp.Body) if err != nil { panic(err) } // get pdf file information fi, err := rpdf.Open(filer) if err != nil { panic(err) } pageNum := fi.NumPage() if Verbose { fmt.Printf("Example PDF from %s\n", url) fmt.Printf("file: %s\n pages: %3d\n", filer, pageNum) } // construct new gofpdf document pdf := gofpdf.NewCustom(&gofpdf.InitType{ UnitStr: "pt", Size: gofpdf.SizeType{ Wd: PDF_WIDTH_IN_MM * MM_TO_RMPOINTS, Ht: PDF_HEIGHT_IN_MM * MM_TO_RMPOINTS}, }) for p := 1; p <= pageNum; p++ { pdf.AddPage() bgpdf := gofpdi.ImportPage(pdf, filer, p, "/MediaBox") gofpdi.UseImportedTemplate(pdf, bgpdf, 0, 0, 210*MM_TO_RMPOINTS, 297*MM_TO_RMPOINTS) if Verbose { fmt.Printf(" page : %3d processed\n", p) } } }
Results in the following error:
Example PDF from http://www.campbell-lange.net/media/files/example5.pdf file: /tmp/pdfexample-315244371 pages: 2 page : 1 processed panic: Failed to put imported objects: Unable to resolve object: Expected next token to be: endstream, got: << goroutine 1 [running]: github.com/phpdave11/gofpdi.(*Importer).PutFormXobjectsUnordered(0xc000079440, 0x2) /home/rory/go/pkg/mod/github.com/phpdave11/gofpdi@v1.0.11/importer.go:162 +0x32e github.com/phpdave11/gofpdf/contrib/gofpdi.(*Importer).getTemplateID(0xc0000a4560, 0x81b0a0, 0xc0001fe000, 0x2, 0x793158, 0x9, 0x7) /home/rory/go/pkg/mod/github.com/phpdave11/gofpdf@v1.4.1-0.20200211150905-48c1f7f2764c/contrib/gofpdi/gofpdi.go:66 +0x6b github.com/phpdave11/gofpdf/contrib/gofpdi.(*Importer).ImportPage(0xc0000a4560, 0x81b0a0, 0xc0001fe000, 0xc000018320, 0x19, 0x2, 0x793158, 0x9, 0x0) /home/rory/go/pkg/mod/github.com/phpdave11/gofpdf@v1.4.1-0.20200211150905-48c1f7f2764c/contrib/gofpdi/gofpdi.go:45 +0x89 github.com/phpdave11/gofpdf/contrib/gofpdi.ImportPage(...) /home/rory/go/pkg/mod/github.com/phpdave11/gofpdf@v1.4.1-0.20200211150905-48c1f7f2764c/contrib/gofpdi/gofpdi.go:115 main.main() /home/rory/src/go-gofpdi-test/gofpdi-t3-web.go:64 +0x402 exit status 2
The following code on v1.0.11:
Results in the following error: