-
@מעלה-ומוריד באמת כדאי להעלות מסמך לדוגמה שנוכל לראות איך הוא בנוי
(נ.ב. למען האמת, @מעלה-ומוריד כבר שלח לי בפרטי קובץ דוגמה, לפני שהוא פתח פה את הפוסט, והוא באמת טקסט. אני הוא שהמלצתי לו לשאול פה, על סמך שיש עוד כמה שישמחו לעזור לי. ההתחלה שהבאתי למעלה הוא תוצאה של שיעורי בית שעשיתי לפני שהוא העלה את הפוסט.) -
@yossiz @רחמים הנה מסמך לדוגמה
שוב תודה רבה! -
@מעלה-ומוריד לא צירפת כלום
-
@רחמים אמר בעזרה - שינוי שם בקבצי PDF מרובים לפי טקסט מתוך המסמך:
@מעלה-ומוריד לא צירפת כלום
תיקנתי (היה חסר
https).. -
בארגון בו אני עובד בניתי תוכנה קבועה לזה, והיא עובדת ב"ה.
אבל במקרה אחר בו היא נדרשה היא לא עובדת (בדיוק כמו הקובץ דוגמה שהעלית) הקובץ לא קריא. ניסיתי המון ניסיונות ולא הצלחתי, אני מקוה ש@yossiz יצליח פה ושעל הדרך בעייתי תיפתר גם.עריכה:
אבל פה לפחות את המספרים והמיילים והטלפונים זה מחלץ מצוין. אפשר מזה בטח להגיע לשם התורם...
אצלי אפילו האנגלית לא קריאה, רק המספרים. טוב אני יחקור שוב עם מה שעשיתי, תודה @מעלה-ומוריד. -
@aaron אמר בעזרה - שינוי שם בקבצי PDF מרובים לפי טקסט מתוך המסמך:
bash? סתם, צוחק.
מה מצחיק? באמת אולי bash היה יותר קל לי, אבל זה לא שימושי ל@מעלה-ומוריד.
נראה לי שהחלק המכאיב זה לבנות regex, מישהו פה התנסה בריג'קס בPS? כי נראה שזה לא תואם..
טוב, נצטרך להוכיח לך שאתה לא צודק...
אולי אתה תרים את הכפפה ותכתוב משהו? -
@yossiz אמר בעזרה - שינוי שם בקבצי PDF מרובים לפי טקסט מתוך המסמך:
טוב, נצטרך להוכיח לך שאתה לא צודק...
שאני לא צודק במה?
זה ודאי לא תואם.. נתחיל בזה שאין פלאג של multiline.. כבר כאב ראש..
(על הדרך גיליתי שיש powershell על דוקר.. אחרת באמת לא היה לי איך לבדוק בכלל) -
param([string]$path = '.') $pdftotext = "C:\path\to\pdftotext.exe" [Console]::OutputEncoding = [text.encoding]::utf8 Get-ChildItem -path $path -Filter '*.pdf' | ForEach-Object -Process { $donor = &$pdftotext -enc UTF-8 -simple $_.FullName - | Select-Object -Index 9 Copy-Item -Path $_.FullName -Destination "$($path)/$($donor.trim()).pdf" }
-
@aaron אמר בעזרה - שינוי שם בקבצי PDF מרובים לפי טקסט מתוך המסמך:
נתחיל בזה שאין פלאג של multiline
פשוט לא נכון. הוצאת שם רע. סביר לטעון שיש טעיות בתכנון של powershell. אבל אל תנסה לטעון שיש טעויות טפשיות שכל מתחיל לא היה עושה.
https://stackoverflow.com/a/12573413
על הדרך גיליתי שיש powershell על דוקר.. אחרת באמת לא היה לי איך לבדוק בכלל
אפשר פשוט להשתמש בווינדוס ?
בנוסף, מה לא טוב בזה? -
@yossiz אמר בעזרה - שינוי שם בקבצי PDF מרובים לפי טקסט מתוך המסמך:
פשוט לא נכון. הוצאת שם רע. סביר לטעון שיש טעיות בתכנון של powershell. אבל אל תנסה לטעון שיש טעויות טפשיות שכל מתחיל לא היה עושה.
צודק, לא הבדלתי בכך שבמקרה הזה מדובר בקלט מstdout מה שאומר שהוא מסופק כשורות נפרדות ולא כטקסט רציף (עם \n)
עריכה: אולי אין קשר..
@yossiz אמר בעזרה - שינוי שם בקבצי PDF מרובים לפי טקסט מתוך המסמך:
אפשר פשוט להשתמש בווינדוס ?
בנוסף, מה לא טוב בזה?אילו היה וינדוס...
ואני משתדל לא להתקין אף פעם ישירות מRPM\DEB. זה מתכון לחבילות לא מעודכנות.. (חוץ מחבילות שכשאתה מתקין הם גם מוסיפות את עצמם לריפו?)
בכל מקרה, לא רואה סיבה "לזהם" את הסביבת עבודה כשיש דוקר פשוט וקל.. -
@yossiz אמר בעזרה - שינוי שם בקבצי PDF מרובים לפי טקסט מתוך המסמך:
יש עדיין מה לשפר בסקריפט שכתבתי:
אני לא מבין בPS אבל הנה השני סנט שלי:
צריך לתת שם ייחודי לכל קובץ כדי שלא יהיה שגיאה כאשר יש שני קבצים עם שם תורם זהה
לשנות את שם הקובץ המקורי ל: שם המקורי+שם התורם.
צריך לטפל שבהרצה שנייה הסקריפט יתעלם מקבצים שכבר טופלו
לבדוק אם שם הקובץ גדול מ-10 תווים (ואז הוא טופל)
צריך לסנן תווים מיוחדים מתוך השם החדש הקובץ
$Path.Split([IO.Path]::GetInvalidFileNameChars()) -join '_'
ממיר את כל התווים הלא תקניים לקו תחתון (מקור)
ישר כח על העזרה @yossiz !
-
@yossiz אמר בעזרה - שינוי שם בקבצי PDF מרובים לפי טקסט מתוך המסמך:
@dovid אמר בעזרה - שינוי שם בקבצי PDF מרובים לפי טקסט מתוך המסמך:
אצלי אפילו האנגלית לא קריאה, רק המספרים
מה הסיפור עם הקובץ? נוצרה מאותה תוכנה? הבנת למה אין טקסט?
תוכנה לא מוכרת לי ממקום חיצוני (באופן קבוע).
כעת בדקתי שוב, יאהוו כמה ניסיתי אז!
הנה רשימה: PdfTextExtractor של iTextSharp, והספריות הבאות בנוד pdf.js-extract, pdf.js, pdf2json, pdfjs-dist, pdfreader.
ובכן בשניים כעת בדקתי שוב, והם לא נותנים אפילו ספרה אחת.. כל הטקסט כזה 픀퐀혀ꀀ. אבל כלי שורת הפקודה שהבאת מביא תמיד את כל המספרים טוב, אבל הטקסט בלי utf-8 הוא ריק ועם הוא כזה:
╫¢╫ץ╫ש
אני לא יכול לשתף שום מסמך מהסוג הזה, ולצערי לא יכול לייצר דוגמה כי אין לי מושג מי התוכנה המייצרת... אדובי רידר מבין את הטקסט נהדר.@מעלה-ומוריד תודה על הנושא, סליחה על הרכיבה על הנושא שאני עצמי לא סובל שאחרים עושים. הרשיתי לעצמי כי בעצם הפתרון ש@yossiz הביא מצויין, הבעיות שלו עם השם קובץ ועם הפעם השניה לדעתי לא באמת יטרידו אותך.
-
@dovid אמר בעזרה - שינוי שם בקבצי PDF מרובים לפי טקסט מתוך המסמך:
סליחה על הרכיבה
בסגר דמור. אם המנהל ישאל אותי אני אגיד לו שלא ימחק אותך
@dovid אמר בעזרה - שינוי שם בקבצי PDF מרובים לפי טקסט מתוך המסמך:
הבעיות שלו עם השם קובץ ועם הפעם השניה לדעתי לא באמת יטרידו אותך.
הבעיות שלו הגיעו מהנסיון אצלי...
הכריש שאתם רואים מלפני הקלעים. מאחוריהם הוא דג זהב שלא גומר לעזור לאנשים. ועד הסוף. -
@מעלה-ומוריד אמר בעזרה - שינוי שם בקבצי PDF מרובים לפי טקסט מתוך המסמך:
הכריש שאתם רואים מלפני הקלעים. מאחוריהם הוא דג זהב שלא גומר לעזור לאנשים. ועד הסוף.
אופסס... אבק לשון הרע...
(אגב, אם כבר הזכרת, אני מעדיף ככל שאפשר לעזור מעל גבי הפורום ולא בפרטי, כי ככה אני מקבל מתן שכרה בצידה של אינטראקציה עם שאר חברי הקהילה החמודה שלנו, עזרה ורעיונות של אחרים וכו' בקיצור כל מה שאני אוהב בתחומים, וגם יש גבול כמה אפשר לנדנד דרך הפורום, בניגוד להתכתבות אישית..., כמובן יש דברים שלא ראוי או שלא יעיל ולא מועיל לעשות דרך הפורום) -
@dovid אמר בעזרה - שינוי שם בקבצי PDF מרובים לפי טקסט מתוך המסמך:
הנה רשימה: PdfTextExtractor של iTextSharp, והספריות הבאות בנוד pdf.js-extract, pdf.js, pdf2json, pdfjs-dist, pdfreader.
מסתבר שיש לנו דרכי פעולה שונות...
הדבר הראשון שהייתי עושה לפני נסיון דרך כל ספרייה שזזה הוא לפתוח את ה-PDF ברנטגן של PDF-ים.
יש כמה תוכנות כאלו, התוכנה האהובה עלי כרגע הוא: https://pdfbox.apache.org/1.8/commandline.html#pdfdebugger
ממש פותח צוהר לתוך המבנה של ה-PDF.
כמובן שצריך להחזיק קרוב אליך את ה"מדריך למשתמש (המתקדם?)" של PDF. ספר בן 1300 עמודים...ובכן בשניים כעת בדקתי שוב, והם לא נותנים אפילו ספרה אחת.. כל הטקסט כזה 픀퐀혀ꀀ. אבל כלי שורת הפקודה שהבאת מביא תמיד את כל המספרים טוב, אבל הטקסט בלי utf-8 הוא ריק ועם הוא כזה:
╫¢╫ץ╫ש
אם כן תריץ
chcp 65001
לפני הפקודה ותמצא נחת. (עובד ב-CMD)
או ב-powershell:[System.Console]::OutputEncoding = [System.Text.Encoding]::UTF8