Mittwoch, 23. Dezember 2020

Deutscher Pressevertrieb - PDF Dateien mit Hilfe von PowerShell Script sichern

Die DPV bietet viele verschiedene Android Apps um sein digitales Abo auf dem Smartphone/Tablet lesen zu können. Leider gibt es keine direkte Möglichkeit ein komplettes PDF herunterzuladen. Mit Hilfe einem PowerShell Script und dem Beitrag Linux - PDF Dokumente zusammenfügen / Merge PDF files ist dies dennoch möglich.


Das nachfolgende Beispiel wurde mit der App von "Schöner Wohnen" erfolgreich getestet!

Der Download innerhalb der App wird im Speicher des Smartphones unter dem folgenden Ordner abgelegt:

  • storage/696E-E61B/Android/data/com.audiencemedia.app2928/files/content/2bfdd49d-d113-4b18-b9ab-e84abbc94789/3abcca1a-0f52-4f7b-86c7-06dea1a9f24a/2

 

Diesen Ordner am Besten mit TotalCommander suchen und auf den PC kopieren (zum Beispiel per WebDav Share).

Jetzt kann das folgende PowerShell Script verwendet werden: https://www.shemel.de/download/powershell/GetPdfFromDigitalEpaper.ps1
Hinweis: Der Paramter zum Donwload Ordner muss natürlich ggf. angepasst werden.

Zum Abschluss im Ordner "..\3abcca1a-0f52-4f7b-86c7-06dea1a9f24a\2\pdf" den Befehl pdfunite *.pdf 01-2021.pdf , aus dem Beitrag https://sebastianhemel.blogspot.com/2020/09/linux-pdf-dokumente-zusammenfugen-merge.html ausführen!

# (c) 2020 - Sebastian Hemel, www.shemel.de
# Get One PDF File from "SCHÖNER WOHNEN Digital E-Paper" - https://play.google.com/store/apps/details?id=com.audiencemedia.app2928
######################################################################################################################################################
# Note: You can find the download folder in the app directory
# storage/696E-E61B/Android/data/com.audiencemedia.app2928/files/content/2bfdd49d-d113-4b18-b9ab-e84abbc94789/3abcca1a-0f52-4f7b-86c7-06dea1a9f24a/2
######################################################################################################################################################

# Loop through files in a directory using PowerShell
$pathToFiles = 'D:\Downloads\Schöner Wohnen 01-2021\3abcca1a-0f52-4f7b-86c7-06dea1a9f24a\2\'
$copyPath = $pathToFiles + 'pdf\'
$scriptPath   = '.\*'
$pattern1 = "page-" # only get files like page-02_2eb264de-f649-4c11-8bee-eeef504aaf48.stxml
$fileNames = Get-ChildItem -Path $scriptPath -Recurse -Include *.stxml

# generate folder for pdfs
New-Item -Name „pdf“ -ItemType Directory -Path $pathToFiles

foreach ($file in $fileNames) {

    if ($file.name -match $pattern1){
        $filesInDirectory = $file.Basename + $file.Extension
        Write-Output $filesInDirectory

        [xml]$xml = Get-Content $pathToFiles$filesInDirectory
        #Write-Output $xml.stage.scene.pdf | Where-Object {$_.contentURL} | Select-Object id
        #Adding leading zeros to a file name
        $newFilename1 = "{0:d3}$($_.extension)" -f [int]$fileNames.IndexOf($file)
        $counter = 0
        
        #copy PDF-files and rename it
        # page-02_2eb264de-f649-4c11-8bee-eeef504aaf48.stxml
        # ==> 5009b369-ff27-4136-9cad-7424be6b0c8b.pdf ==> ./pdf/000-1.pdf
        # ==> d90b35dc-ce19-4e78-b944-87d9503f4850.pdf ==> ./pdf/000-2.pdf
        $xml.stage.scene.pdf | Where-Object {$_.contentURL} | Select-Object id | ForEach-Object {
            $fileName = $_.id
            $fileName = $pathToFiles + $fileName
            Write-Output 'Copy: '$fileName
            Copy-Item $fileName $copyPath$newFilename1'-'$((++$counter))'.pdf'
        }
    }
}


Keine Kommentare:

Kommentar posten