Ejemplo n.º 1
0
func main() {
	flag.BoolVar(&util.Debug, "debug", false, "enable debug logging")
	flag.BoolVar(&pdutil.Debugobj, "dump", false, "dump object content")
	flag.IntVar(&maxlevel, "levels", 5, "maximum number of levels")
	displayref := flag.String("r", "", "display resource by reference")

	flag.Parse()

	for _, f := range flag.Args() {
		fmt.Println("----", f, "--------------------")

		pd := pdfread.Load(f)
		if pd == nil {
			fmt.Println("can't open input file")
			fmt.Println()
			continue
		}

		fmt.Println(pd.Version)
		fmt.Println()

		if *displayref != "" {
			PrintRef(os.Stdout, pd, *displayref, "")
			fmt.Println()
			break
		}

		pdutil.Printdic(os.Stdout, pd, pd.Trailer, "", "/Trailer", maxlevel, "")
		fmt.Println()
	}
}
Ejemplo n.º 2
0
func main() {
	asHtml := flag.Bool("html", false, "output as html (true) or xml (false)")
	debug := flag.Bool("debug", false, "debug mode")
	page := flag.Int("page", 0, "page number")

	flag.Parse()

	if *page < 0 {
		complain("Bad page!\n\n")
	}

	if flag.NArg() != 1 {
		complain("")
	}

	pd := pdfread.Load(flag.Arg(0))
	if pd == nil {
		complain("Could not load pdf file!\n\n")
	}

	util.Debug = *debug

	if *asHtml {
		fmt.Printf("<!DOCTYPE html><html><body>\n%s</body></html>\n", svg.Page(pd, *page, false))
	} else {
		fmt.Printf("%s", svg.Page(pd, *page, true))
	}
}
Ejemplo n.º 3
0
func main() {
	pd := pdfread.Load(os.Args[1])
	if pd != nil {
		fmt.Println("PageMode", pd.PageMode)
		fmt.Println()

		outlines := pd.Outlines()

		if len(outlines) > 0 {
			fmt.Println("Outlines:")
			for _, p := range outlines {
				fmt.Println("Page", p.Page+1, "-", p.Title)
			}

			fmt.Println()
		}

		fmt.Println("Pages:")
		pg := pd.Pages()

		for k := range pg {
			fmt.Printf("Page %d - MediaBox: %s\n",
				k+1, pd.Att("/MediaBox", pg[k]))
			fonts := pd.PageFonts(pg[k])
			for l := range fonts {
				fontname := pd.Dic(fonts[l])["/BaseFont"]
				fmt.Printf("  %s = \"%s\"\n",
					l, fontname[1:])
			}
		}
	}
}
Ejemplo n.º 4
0
func main() {
	pd := pdfread.Load(os.Args[1])
	_, d := pd.DecodedStream(util.Bytes(os.Args[2]))
	fmt.Printf("%s", d)

	/*
	   a := cmapi.Read(fancy.SliceReader(d));
	   fmt.Printf("\n%v\n%v\n%v\n", a, a.Ranges, a.Uni);
	*/
}
Ejemplo n.º 5
0
func main() {
	flag.BoolVar(&util.Debug, "debug", false, "print debug info")
	page := flag.Int("page", 0, "page to extract, all pages if missing")

	flag.Parse()

	if flag.NArg() != 1 {
		complain("")
	}

	if *page < 0 {
		complain("Bad page!\n\n")
	}

	filename := flag.Arg(0)
	pd := pdfread.Load(filename)
	if pd == nil {
		complain("Could not load pdf file!\n\n")
	}

	npages := len(pd.Pages())

	if *page > npages {
		complain("Page out of range!\n\n")
	}

	output := path.Base(filename)
	if p := strings.LastIndex(output, "."); p > 0 {
		output = output[:p]
	}
	output += ".tif"

	f, err := os.Create(output)
	if err != nil {
		log.Fatal(err)
	}

	defer f.Close()

	t := NewTiffBuilder(f)
	t.WriteHeader()

	if *page == 0 {
		for p := 1; p <= npages; p++ {
			extract(pd, p, t, p < npages)
			fmt.Println("--------------")
		}
		return
	}

	if *page <= npages {
		extract(pd, *page, t, false)
		return
	}
}
Ejemplo n.º 6
0
func main() {
	if len(os.Args) == 1 || len(os.Args) > 2 {
		complain("")
	}
	pd = pdfread.Load(os.Args[1])
	if pd == nil {
		complain("Could not load pdf file!\n\n")
	}
	http.Handle("/hello", http.HandlerFunc(HelloServer))
	err := http.ListenAndServe(":12345", nil)
	if err != nil {
		panic(fmt.Sprintf("ListenAndServe: %s", err))
	}
}