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:
Livia Badea
Femeie
24 ani
Bucuresti
cauta Barbat
26 - 49 ani
Forum Romania Inedit / Totul despre cărți - About e-books / Equinox Converter Moderat de Seven, Stelevadris, cuculean, naid, uncris
Autor
Mesaj Pagini: 1
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
Adauga un pas suplimentar de conversie doc > docx. Un script care invoca Word-ul e suficient.
E foarte util cand ai multe fisiere doc care vrei sa le convertesti in epub etc.


_______________________________________
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
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
Problema cu doc to xxx o puteam rezolva, dar invers din xxx in doc nu o pot rezolva. Din acest motiv am eliminat definitiv doc, care mie cel putin mi se pare un format neutilizat in zilele noastre.

Modificat de Equinox (acum 5 zile)


_______________________________________
Urăsc prostia!
EQUINOX CONVERTER | STAR WARS (BD) | MADDRAX | DAVID SAKMYSTER | JACK MARS | SARA BLĆDEL | ANDREAS SUCHANEK

pus acum 12 zile
   
Pagini: 1  

Mergi la