Ver Mensaje Individual
  #3 (permalink)  
Antiguo 14/07/2015, 17:51
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 12 años, 6 meses
Puntos: 320
Respuesta: Crear PDF con Font Type 3

Hola, no, no requiere codificación especial. Muchas gracias por el interes, ya logre resolverlo, publico aquí la solución:

El problema es que se necesita generar pdf para una factura (incluyendo un código de barras) desde lenguajes antiguos (entiéndase: pascal, cobol, basic, etc) donde no hay muchas herramientas (por no decir ninguna) para tal fin, la solucion mas simple por la que se opto fue por generar un pdf como texto plano y luego desde esos lenguajes abrirlos, reemplazar el contenido y volver a guardarlos, es decir, usarlos como templates.
Los programas de diseño de pdf generan pdfs repletos de blobs binarios comprimidos, si bien es posible descomprimir esos blobs, los resultados siguen siendo muy desfavorables e incluso el texto generado sigue en binario ya que se incluye como curvas y luego se define un diccionario que vincula esas curvas con las letras para permitir su edicion posterior.

Por tal motivo, se opto por generar un pdf a mano que sea solo texto plano.
El problema mas grande fue el codigo de barras, porque debe estar embebido en el pdf ya que se debe mostrar correctamente en cualquier maquina, a continuación, expongo el codigo fuente de un pdf con un codigo de barras embebido que es texto plano solo, si alguien se topa con un problema similar puede utilizarlo.

Código PDF:
Ver original
  1. %PDF-1.4
  2. 1 0 obj <</Type /Catalog /Pages 2 0 R>> endobj
  3. 2 0 obj <</Type /Pages /Kids [3 0 R] /Count 1>> endobj
  4. 3 0 obj <</Type /Page /Parent 2 0 R /Resources 4 0 R /MediaBox [0 0 400 180] /Contents 6 0 R>> endobj
  5. 4 0 obj <</Font <</F1 5 0 R>>>> endobj
  6. 5 0 obj <</Type /Font /Subtype /Type3 /FontBBox [0 0 1100 1100] /FontMatrix [0.0011 0 0 0.0011 0 0] /CharProcs 8 0 R /Encoding 7 0 R /FirstChar 47 /LastChar 59 /Widths [1100 1100 1100 1100 1100 1100 1100 1100 1100 1100 1100 1100]>> endobj
  7. 6 0 obj <</Length 44>> stream BT /F1 20 Tf 50 100  Td (/0123456789/)Tj ET endstream endobj
  8. 7 0 obj <</Type /Encoding /Differences [47 /sls 48 /nr0 49 /nr1 50 /nr2 51 /nr3 52 /nr4 53 /nr5 54 /nr6 55 /nr7 56 /nr8 57 /nr9] >> endobj
  9. 8 0 obj << /sls 9 0 R /nr0 10 0 R /nr1 11 0 R /nr2 12 0 R /nr3 13 0 R /nr4 14 0 R /nr5 15 0 R /nr6 16 0 R /nr7 17 0 R /nr8 18 0 R /nr9 19 0 R >> endobj
  10. 9 0 obj << /Length 77 >>
  11. stream
  12. 1100 0 0 0 1100 1100 d1 0 0 200 1100 re 400 0 100 1100 re 800 0 100 1100 re f
  13. endstream
  14. endobj
  15. 10 0 obj << /Length 77 >>
  16. stream
  17. 1100 0 0 0 1100 1100 d1 0 0 100 1100 re 300 0 300 1100 re 700 0 200 1100 re f
  18. endstream
  19. endobj
  20. 11 0 obj << /Length 77 >>
  21. stream
  22. 1100 0 0 0 1100 1100 d1 0 0 100 1100 re 300 0 300 1100 re 800 0 200 1100 re f
  23. endstream
  24. endobj
  25. 12 0 obj << /Length 77 >>
  26. stream
  27. 1100 0 0 0 1100 1100 d1 0 0 200 1100 re 400 0 300 1100 re 900 0 100 1100 re f
  28. endstream
  29. endobj
  30. 13 0 obj << /Length 77 >>
  31. stream
  32. 1100 0 0 0 1100 1100 d1 0 0 200 1100 re 400 0 100 1100 re 600 0 300 1100 re f
  33. endstream
  34. endobj
  35. 14 0 obj << /Length 77 >>
  36. stream
  37. 1100 0 0 0 1100 1100 d1 0 0 200 1100 re 400 0 100 1100 re 700 0 300 1100 re f
  38. endstream
  39. endobj
  40. 15 0 obj << /Length 77 >>
  41. stream
  42. 1100 0 0 0 1100 1100 d1 0 0 200 1100 re 300 0 300 1100 re 800 0 100 1100 re f
  43. endstream
  44. endobj
  45. 16 0 obj << /Length 77 >>
  46. stream
  47. 1100 0 0 0 1100 1100 d1 0 0 200 1100 re 400 0 300 1100 re 800 0 100 1100 re f
  48. endstream
  49. endobj
  50. 17 0 obj << /Length 77 >>
  51. stream
  52. 1100 0 0 0 1100 1100 d1 0 0 300 1100 re 400 0 200 1100 re 700 0 300 1100 re f
  53. endstream
  54. endobj
  55. 18 0 obj << /Length 77 >>
  56. stream
  57. 1100 0 0 0 1100 1100 d1 0 0 300 1100 re 400 0 100 1100 re 700 0 200 1100 re f
  58. endstream
  59. endobj
  60. 19 0 obj << /Length 77 >>
  61. stream
  62. 1100 0 0 0 1100 1100 d1 0 0 300 1100 re 500 0 100 1100 re 700 0 200 1100 re f
  63. endstream
  64. endobj
  65. xref
  66. 0 20
  67. 0000000000 65535 f
  68. 0000000009 00000 n
  69. 0000000056 00000 n
  70. 0000000111 00000 n
  71. 0000000213 00000 n
  72. 0000000252 00000 n
  73. 0000000491 00000 n
  74. 0000000582 00000 n
  75. 0000000721 00000 n
  76. 0000000873 00000 n
  77. 0000001000 00000 n
  78. 0000001128 00000 n
  79. 0000001256 00000 n
  80. 0000001384 00000 n
  81. 0000001512 00000 n
  82. 0000001640 00000 n
  83. 0000001768 00000 n
  84. 0000001896 00000 n
  85. 0000002024 00000 n
  86. 0000002152 00000 n
  87. trailer <</Size 19 /Root 1 0 R>>
  88. startxref
  89. 2279
  90. %%EOF

Eso se copia y pega en un archivo txt en blanco y se lo guarda con la extencion .pdf y sale funcionando.

Espero a alguien le sirva. Saludos!
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios