¿Como hacer para corregir lineas de texto extraidas de un pdf?

Iniciado por jack2013, 1 Mayo 2020, 02:49 AM

0 Miembros y 1 Visitante están viendo este tema.

jack2013

Hola a todos, ¿que tal? Resulta que uso EditPadLite, me ha ayudado muchísimo en la redacción y edición de textos. El problema que tengo, es que no se cómo hacer para que me corrija las líneas que voy extrayendo al copiar y pegar textos de documentos pdf.

No se por qué me los copia mal, y hace que entre cada palabra, o entre varias palabras, existan más de 1 espacio, hay veces que llego a tener hasta 5 espacios entra cada palabra, aparte que al final de cada línea, tengo que estar haciendo "delete" 1 o dos veces, luego hacer "abajo", "fin" y de vuelta "delete" varias veces hasta llegar a la próxima palabra.

¿Alguien sabe cómo resolver este problema tan molesto que tengo dede hace tanto tiempo? Alguna función que me permita evitar que me pase eso, o sino, que me recomienden algún otro editor de texto que sea tan bueno, o mejor que EditPadLite.

Se lo agradeceré infinitamente.

Quedo a la espera de novedades.

Saludos cordiales.

EdePC

Has revisado si en verdad es problema de EditPad, porque los PDF pueden llegar a ser bastante "sucios", puede verse de una manera pero el texto y la disposición del documento en sí podría estar horriblemente armada.

Pega tu texto a un block de notas simple para comprobarlo. Si es problema de EdiPad supongo que el detalle estaría en la autodetección de tabulaciones que tiene, aunque lo dudo.

Adobe Acrobat PDF suele sanitizar un poco el texto copiado desde un PDF para que sea más legible si es que no lo es, por esto ofrece la opción de copiar normal y copiar tal cual.

- Un editor de texto para redactar documentos  :o? no es mejor Microsoft Word o Libre Office Write, claro que dependerá de tus necesidades, para texto y código me inclino más por usar SublemeText, para código más elaborado Visual Studio Code y para redactar documentos ofimáticos Microsoft Office 2013 que me va bastante rápido y tiene lo que necesito.

----

Le he estado echando un ojo a EditPad y tiene buena apariencia, no tanta como utilizarla en lugar de Notepad++ o mucho menos por Sublime pero podría competir contra Notepad3 ... Si puedes nombrar algunas resaltantes sobre su uso sería bueno.

- Veo que permite utilizar Expresiones Regulares para hacer búsquedas y reemplazos, pues las Expresiones Regulares son mágicas, pues buscar por { +} y reemplazarlas por { } OMITE las llaves

[u]nsigned

#2
Podes crearte un pequeño script que te borre todos los espacios sobrantes (dos o mas consecutivos) usando expresiones regulares:

Ejemplo en javascript:
Código (javascript) [Seleccionar]

var textoSucio = "  95716 B VO      21513836                        269     60 S          50.40          3024.00          SI          DCBO040818BLA";
var textoLimpio = textoSucio.replace(/^\s+|\s+$|\s+(?=\s)/g, "");
console.log(textoLimpio)


Que tendria la siguiente salida:
95716 B VO 21513836 269 60 S 50.40 3024.00 SI DCBO040818BLA

Tambien habria que ver si ademas de espacios consecutivos, tambien tenes otro tipo de 'suciedad' como tabulaciones u otros carecteres raros, pero la forma de eliminarlos con expresiones regulares es la misma.

No hay atajo ante la duda, el misterio se hace aquí...
Se hace carne en cada uno, el misterio es existir!

@XSStringManolo

No la probé pero creo que la forma de unsigned es mejor.

Te hice un código para que guardes como html y lo uses para quitar los espacios. Copias el código, lo guardas como espacios.html y lo abres en el navegador. Pengas dentro del area el texto, de das al botón y ya te los quita. Después click derecho y seleccionar todo.
También te dejé entre comentarios /* */ para quitar los saltos de linea. Si borras /* */ ya te quita también los saltos de línea. Si tiene más de 10 espacios consecutivos dale varias veces al botón xD.

Código (javascript) [Seleccionar]
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<style>
textarea {
  width: 99%;
  height: 600px;
  overflow: scroll;
}
</style>
</head>
<body>
<button type="button" id="xD2">Quita Espacios</button>
<br />
<textarea id="xD" placeholder="Pon aquí tu texto">          10
         9
        8
       7
      6
     5
    4
   3
  2
1
0</textarea>
<script>
var ta=document.querySelector("#xD");
document.querySelector("#xD2").onclick=function(){ta.value=Formatear(ta.value)};

function Formatear(texto) {
  return texto/*.replace(/(\r\n|\n|\r)/gm,"")*/
.replace("          "," ")
.replace("         "," ")
.replace("        "," ")
.replace("       "," ")
.replace("      "," ")
.replace("     "," ")
.replace("    "," ")
.replace("   "," ")
.replace("  "," ")

}</script>
</body>
</html>