Forum Romania Inedit
Romania Inedit - Resursa ta de Fun
|
Lista Forumurilor Pe Tematici
|
Forum Romania Inedit | Reguli | Inregistrare | Login
POZE FORUM ROMANIA INEDIT
Nu sunteti logat.
|
Nou pe simpatie: Sophya pe Simpatie
 | Femeie 25 ani Bucuresti cauta Barbat 25 - 54 ani |
|
Equinox
VETERAN
 Inregistrat: acum 15 ani
|
|
Am creat un converter pentru o serie de tipuri de documente. Conversia se face pentru toate documentele din acelasi director, precum si pentru un singur fisier ales.
Prezența Calibre: Programul va porni pe orice PC, dar dacă acel calculator nu are Calibre instalat, utilitarul va afișa eroarea și te va trimite la link-ul de descărcare. Conversia propriu-zisă nu poate avea loc fără motorul Calibre instalat local.
Sistemul de operare: Executabilul va rula doar pe Windows 64 biți.
Antivirus: Uneori, fișierele .exe create manual cu PyInstaller pot fi marcate eronat ca fiind suspecte de către unii antiviruși (False Positive), deoarece nu sunt semnate digital cu un certificat de dezvoltator. Dacă se întâmplă asta, va trebui să îi dai "Allow" sau să îl adaugi la excepții.
Permisiuni de scriere: Asigură-te că ai dreptul de a scrie în folderul unde se află documentele, altfel programul nu va putea salva fișierele convertite.
Formate acceptate: DOCX, RTF, ODT, TXT, HTML, PDF, EPUB, MOBI, AZW3, FB2. Programul va sări automat peste conversia unui fișier în același format.
Download: v.2.2
Asteptam cu interes sugestii, propuneri, critici... Suntem convinsi ca nu este primul converter din lume.
Modificat de Equinox (acum 2 saptamani)
_______________________________________ Urăsc prostia! EQUINOX CONVERTER | STAR WARS (BD) | MADDRAX | DAVID SAKMYSTER | JACK MARS | SARA BLĆDEL | ANDREAS SUCHANEK
|
|
| pus acum 3 saptamani |
|
Equinox
VETERAN
 Inregistrat: acum 15 ani
|
|
Am ajuns deja la v.2.0 - I-am pus un icon. - Am introdus conversia si pentru un singur fisier in celelalte formate. - Am imbunatatit conversia PDF in DOC, DOCX, TXT, HTML, ODT, TXT. Acum conversia se face prin pdf2docx si PyMuPDF. - Conversia celorlalte tipuri de fisiere EPUB, MOBI, AZW3 si FB2 se face tot prin Calibre.
Asteptam in continuare cu interes sugestii, propuneri, critici...
_______________________________________ Urăsc prostia! EQUINOX CONVERTER | STAR WARS (BD) | MADDRAX | DAVID SAKMYSTER | JACK MARS | SARA BLĆDEL | ANDREAS SUCHANEK
|
|
| pus acum 3 saptamani |
|
Equinox
VETERAN
 Inregistrat: acum 15 ani
|
|
Multumesc, @ank60 pentru semnalizari unei erori majore. Deoarece Calibre are dificultăți în a accesa sau interpreta fișierul binar vechi tip .doc, convesria in/din .doc nu a functionat. Deoarece nu sunt programator, iar ceea ce am realizat a fost pur si simplu cu Gemini, versiunea v.2.2 vine fara DOC.
Pentru conversia doc am incercat si ceva in C#. Functioneaza, dar pot aparea probleme la FB2 si AZW3. Iar costurile nu sunt zero.
Imi pare rau, @ank60.
P.S.: Eu am renuntat la fisierele doc de multi ani.
_______________________________________ Urăsc prostia! EQUINOX CONVERTER | STAR WARS (BD) | MADDRAX | DAVID SAKMYSTER | JACK MARS | SARA BLĆDEL | ANDREAS SUCHANEK
|
|
| pus acum 2 saptamani |
|
Stelevadris
Moderator
 Inregistrat: acum 20 ani
|
|
|
| pus acum 2 saptamani |
|
Stelevadris
Moderator
 Inregistrat: acum 20 ani
|
|
param ( [Parameter(Mandatory = $false, ValueFromRemainingArguments = $true)] $InputPath )
# Set UTF-8 encoding for special characters in the console [Console]::OutputEncoding = [System.Text.Encoding]::UTF8
# Variable to hold the current path $CurrentPath = "$InputPath".Trim('"')
do { # 1. Request input if no valid path is provided if ([string]::IsNullOrWhiteSpace($CurrentPath)) { Write-Host "`n===============================================================" -ForegroundColor Cyan Write-Host " TRAGE UN FOLDER AICI SI APASA ENTER PENTRU CONVERSIE " -ForegroundColor Yellow Write-Host " SAU SCRIE 'iesire' PENTRU A INCHIDE SCRIPTUL " -ForegroundColor White Write-Host "===============================================================" -ForegroundColor Cyan $UserInput = Read-Host "Cale folder / Comanda" if ($UserInput -eq "iesire" -or $UserInput -eq "exit") { break } $CurrentPath = $UserInput.Trim('"') }
# 2. Path Validation if (-not (Test-Path -LiteralPath $CurrentPath -PathType Container)) { Write-Host "`n[EROARE] Calea '$CurrentPath' nu este valida sau nu este un folder." -ForegroundColor Red $CurrentPath = $null continue }
Write-Host "`nProcesare inceputa in: $CurrentPath" -ForegroundColor Cyan Write-Host "---------------------------------------------------------------"
$word = $null try { # Initialize Word COM Object $word = New-Object -ComObject Word.Application $word.Visible = $false $word.DisplayAlerts = 0 $successCount = 0 $errorCount = 0
# Optimization: Using -Filter for speed and strict Extension matching to avoid .docx files $files = Get-ChildItem -LiteralPath $CurrentPath -Recurse -File | Where-Object { ($_.Extension -eq ".doc" -or $_.Extension -eq ".rtf") -and $_.Name -notlike "~$*" }
if ($null -eq $files -or @($files).Count -eq 0) { Write-Host "Nu au fost gasite fisiere .doc sau .rtf noi pentru conversie." -ForegroundColor Yellow } else { foreach ($file in $files) { $doc = $null $directory = $file.DirectoryName $baseName = $file.BaseName $extension = ".docx" $finalName = "$baseName$extension" $fullPathDocx = Join-Path $directory $finalName $counter = 1
# Prevent overwriting existing .docx files while (Test-Path -LiteralPath $fullPathDocx) { $finalName = "$baseName($counter)$extension" $fullPathDocx = Join-Path $directory $finalName $counter++ }
try { # Open document (ReadOnly = $true, ConfirmConversions = $false) $doc = $word.Documents.Open($file.FullName, $false, $true) # 16 = wdFormatXMLDocument (.docx) $doc.SaveAs2([string]$fullPathDocx, 16) $doc.Close(0) # 0 = wdDoNotSaveChanges Write-Host "Succes: $($file.Name) -> $finalName" -ForegroundColor Green $successCount++ } catch { Write-Host "Eroare la $($file.Name): $($_.Exception.Message)" -ForegroundColor Red $errorCount++ } finally { # Explicitly release the document object from memory if ($null -ne $doc) { [System.Runtime.Interopservices.Marshal]::ReleaseComObject($doc) | Out-Null } } } } Write-Host "---------------------------------------------------------------" Write-Host "Conversie finalizata!" -ForegroundColor Cyan Write-Host "Fisiere noi create: $successCount" -ForegroundColor Green if ($errorCount -gt 0) { Write-Host "Erori intampinate: $errorCount" -ForegroundColor Red }
} catch { Write-Host "Eroare critica Word: $($_.Exception.Message)" -ForegroundColor Red } finally { # Proper cleanup of the Word application if ($null -ne $word) { $word.Quit() [System.Runtime.Interopservices.Marshal]::ReleaseComObject($word) | Out-Null } # Force garbage collection to ensure winword.exe closes immediately [System.GC]::Collect() [System.GC]::WaitForPendingFinalizers() }
$CurrentPath = $null Write-Host "`nGata de o noua procesare..." -ForegroundColor Gray
} while ($true)
Write-Host "`nScriptul se inchide..." -ForegroundColor Cyan Start-Sleep -Seconds 1
_______________________________________ Totul despre cărți - About e-books - Tehnici de scanare, sfaturi, proiecte etc. - Support, future projects, etc.
|
|
| pus acum 2 saptamani |
|
Stelevadris
Moderator
 Inregistrat: acum 20 ani
|
|
Pentru ca acest script să funcționeze corect, sistemul dumneavoastră trebuie să îndeplinească următoarele cerințe tehnice: 1. Sistem de Operare și Software
Windows 10 sau Windows 11: Scriptul este conceput pentru mediul Windows și utilizează PowerShell, care este preinstalat pe aceste versiuni.
Microsoft Word instalat: Este obligatoriu ca aplicația Microsoft Word (parte din pachetul Office sau Microsoft 365) să fie instalată local. Scriptul folosește motorul intern al Word pentru a efectua conversia fișierelor.
2. Permisiuni de Execuție (PowerShell Execution Policy)
Permisiune pentru scripturi: În mod implicit, Windows poate bloca rularea scripturilor .ps1 din motive de securitate.
Dacă primiți o eroare la lansare, este necesar să rulați PowerShell ca Administrator și să introduceți comanda: Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser, apoi să apăsați Y.
3. Acces la Fișiere și Directoare
Drepturi de scriere: Trebuie să aveți permisiuni de scriere în folderul unde se află fișierele originale, deoarece scriptul va crea noile documente .docx în aceeași locație.
Fișiere deblocat: Documentele .doc sau .rtf nu trebuie să fie deschise în alt program în momentul în care rulați scriptul, pentru a evita erorile de tip "File in use" (Fișier utilizat de alt proces).
4. Resurse Hardware
Memorie RAM suficientă: Deși scriptul curăță memoria după fiecare fișier, procesarea a mii de documente simultan necesită ca sistemul să aibă resurse libere pentru a menține instanța de Word activă în fundal.
_____________________________________ Cum se utilizează scriptul
Pentru a rula acest script pe un sistem de operare Windows, trebuie să urmați acești pași:
Salvarea fișierului: Asigurați-vă că textul codului este salvat într-un fișier cu extensia .ps1 (de exemplu, Conversie.ps1).
Lansarea în execuție: Dați clic dreapta pe fișier și selectați opțiunea "Run with PowerShell" (Executare cu PowerShell).
Introducerea locației:
Când fereastra albastră (sau neagră) apare, vi se va solicita o cale către un folder.
Puteți deschide File Explorer, navigați până la folderul care conține documentele, faceți clic pe acesta și trageți-l (Drag and Drop) direct în fereastra scriptului.
Apăsați tasta Enter.
Monitorizarea: Scriptul va afișa în timp real numele fiecărui fișier procesat.
Finalizarea: Când procesarea este gata, scriptul va afișa un raport cu numărul de fișiere convertite cu succes. Puteți introduce un alt folder sau puteți scrie iesire pentru a închide fereastra.
Ce face scriptul (Funcționalitate)
Acest script automatizează interacțiunea dintre sistemul de fișiere Windows și aplicația Microsoft Word. Iată procesele sale interne:
Identificarea fișierelor: Scanează folderul indicat (inclusiv subfolderele) și caută exclusiv fișierele cu extensiile .doc sau .rtf. Ignoră fișierele temporare sau cele care sunt deja în format .docx.
Activarea Microsoft Word: Pornește instanța executabilă a Microsoft Word în fundal (fără interfață grafică vizibilă) pentru a procesa datele fără a întrerupe utilizatorul.
Conversia propriu-zisă:
Deschide fiecare fișier identificat.
Verifică dacă există deja un fișier cu același nume în format modern. Dacă există, adaugă un sufix numeric (ex: (1)) pentru a evita pierderea datelor prin suprascriere.
Transpune conținutul în formatul Office Open XML (docx), care este standardul actual de stocare pentru documentele text.
Garantarea integrității: Documentele originale (.doc sau .rtf) rămân intacte pe disc; scriptul doar creează copii noi în formatul modern.
Eliberarea resurselor: După terminarea operațiunilor, scriptul închide procesul Word din memoria RAM a calculatorului pentru a preveni consumul inutil de resurse ale sistemului.
_______________________________________ Totul despre cărți - About e-books - Tehnici de scanare, sfaturi, proiecte etc. - Support, future projects, etc.
|
|
| pus acum 2 saptamani |
|
Equinox
VETERAN
 Inregistrat: acum 15 ani
|
|
|
| pus acum 12 zile |
|