file.go 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. package common
  2. import (
  3. "encoding/json"
  4. "github.com/go-rod/rod/lib/utils"
  5. "github.com/tidwall/gjson"
  6. "os"
  7. "strings"
  8. )
  9. // GetCollectPDFPath 生成一个采集用的pdf路径
  10. func GetCollectPDFPath(district, taxNo, taxTape string) (string, error) {
  11. var err error
  12. var path string
  13. path = "./data/collection/" + district + "/"
  14. if !PathExists(path) {
  15. err = os.MkdirAll(path, os.ModePerm)
  16. }
  17. path = path + taxNo + "_" + taxTape + ".pdf"
  18. return path, err
  19. }
  20. // name pdf文件名
  21. // path 文件路径
  22. func PostBankPdf(name, suffix, path string) string {
  23. var params = map[string]string{
  24. "path": "/mnt/bank/banks/",
  25. "name": name + "." + suffix,
  26. }
  27. str, _ := PostFile("https://public.listensoft.net/api/uploadFile", map[string]string{
  28. "upFile": path,
  29. }, params)
  30. return gjson.GetBytes(str, "data.url").String()
  31. }
  32. // PDFtoStrArrayPython pdf转二维数组 python服务
  33. func PDFtoStrArrayPython(path string) ([][]string, error) {
  34. var code [][]string
  35. files := map[string]string{
  36. "file": path,
  37. }
  38. var bys []byte
  39. var err error
  40. pdfServers := []string{
  41. `http://47.104.75.113:6000/pdfToText`,
  42. `http://47.104.75.113:6000/pdfToText`,
  43. }
  44. for _, uri := range pdfServers {
  45. bys, err = PostFile(uri, files, map[string]string{})
  46. if err != nil {
  47. utils.Sleep(10)
  48. continue
  49. }
  50. break
  51. }
  52. if err != nil {
  53. return code, err
  54. }
  55. json.Unmarshal(bys, &code)
  56. return code, nil
  57. }
  58. // UploadPdfToStrArray java PDF转数组
  59. func UploadPdfToStrArray(path string) ([]string, error) {
  60. f := 0
  61. begin:
  62. url := "http://47.104.75.113:8080/api/uploadPdfToText" //灵信服务器
  63. files := map[string]string{
  64. "file": path,
  65. }
  66. resp, err := PostFile(url, files, map[string]string{})
  67. arr := []string{}
  68. if err != nil {
  69. if f < 3 {
  70. f++
  71. utils.Sleep(10)
  72. goto begin
  73. }
  74. return arr, err
  75. }
  76. type resut struct {
  77. Text string `json:"text"`
  78. }
  79. var Result resut
  80. if err := json.Unmarshal(resp, &Result); err != nil {
  81. return arr, err
  82. }
  83. arr = strings.Split(Result.Text, "\n")
  84. return arr, nil
  85. }