Error CGImageComponentType unknown

busterTheobusterTheo Membre
janvier 2020 modifié dans API UIKit #1

Bonjour aux barManAndWoman,
je reviens vers vous suite à ce sujet que je re-travaille actuellement.

Et, au fait : Bonne année...

J'ai externalisé comme proposé, et corrigé le code.

func createPdfFromView(_ aView: UIScrollView, saveToDocumentsWithFileName fileName: String) {
    print("- CreatePdfFromView DEBUT : fileName = \(fileName)\n")

    let pageDimensions = aView.bounds
    let lePageSize = pageDimensions.size
    let totalSize = aView.contentSize
    let hauteurPageHeight = lePageSize.height
    let numberOfPagesThatFitVertically = Int(ceil(totalSize.height / hauteurPageHeight))

    let outputData = NSMutableData()
    UIGraphicsBeginPDFContextToData(outputData, pageDimensions, nil)

    let savedContentOffset = aView.contentOffset
    let savedContentInset = aView.contentInset

    aView.contentInset = UIEdgeInsets.zero

    if let context = UIGraphicsGetCurrentContext() {
        UIGraphicsBeginPDFPage()
        for indexVertical in 0 ..< numberOfPagesThatFitVertically {
            print("- CreatePdfFromView indexVertical = \(indexVertical)")
            let offsetVertical = CGFloat(indexVertical) * pageSize.height
            context.translateBy(x: 0, y: -offsetVertical)
            aView.contentOffset = CGPoint(x: 0, y: offsetVertical)
            aView.layer.render(in: context)
        }
        UIGraphicsEndPDFContext()
    }

    aView.contentInset = savedContentInset
    aView.contentOffset = savedContentOffset

    let savePdf = SavePdf()
    savePdf.enregitrerPdf()

    print("--->> Le savePdf.documentsFileName : \(savePdf.documentsFileName)")
    outputData.write(toFile: savePdf.documentsFileName, atomically: true)

    print("- CreatePdfFromView FIN")
}

Et l'erreur (Dans la console) se produit après indexVertical = 0. Voici l'erreur.

- CreatePdfFromView DEBUT : fileName = MVC-Mas-29-01-2020
- 
- CreatePdfFromView indexVertical = 0

**Jan 29 14:45:24  EASYdev[1108] <Error>: initialize_vImage_format : CGImageComponentType unknown - using kCGImageComponent8BitInteger derived from bits per pixel**

- CreatePdfFromView indexVertical = 1
- CreatePdfFromView indexVertical = 2
- etc...
- CreatePdfFromView indexVertical = 36
- 
> SavePdf Init
> SavePdf enregitrerPdf

--->> Le savePdf.documentsFileName : /var/mobile/Containers/Data/Application/CB77DD84-B48A-4320-AFAE-4F6844E89785/Documents/Etude-esthetique-.pdf

- CreatePdfFromView FIN
- 
- ADD SUBVIEW pdfWebView

Et du coup, le pdf ne se fait pas sur l'iPad (il s'affiche, mais vide), alors que sur le simulateur, il se fait et s'affiche rempli des pages en question.

Une idée ?

Merci d'avance

Réponses

  • busterTheobusterTheo Membre
    janvier 2020 modifié #2

    Désolé pour les gros gras : je ne trouve pas comment modifier.
    Et en plus, c'est tout bordélique.
    Vraiment désolé.
    Pourtant je soigne la mise en page, mais là, chui bluffé.

  • @busterTheo a dit :
    Désolé pour les gros gras : je ne trouve pas comment modifier.

    Après avoir posté, tu as 4 heures pour modifier le contenu, en cliquant sur le bouton en forme de rouage, dans le coin haut droit.

    Pour le reste .. euh .. pas la moindre idée !

  • CéroceCéroce Membre, Modérateur

    @busterTheo a dit :
    Désolé pour les gros gras : je ne trouve pas comment modifier.
    Et en plus, c'est tout bordélique.
    Vraiment désolé.
    Pourtant je soigne la mise en page, mais là, chui bluffé.

    C'est du Markdown, il faut formater d'un certaine manière.

  • CéroceCéroce Membre, Modérateur

    @busterTheo a dit :
    Une idée ?

    Pas précisément, mais d'habitude tu as ce genre de messages quand tu passes les mauvais paramètres à la création d'un CGBitmapContext.
    Jette un œil à vImage_CGImageFormat dans la doc, ça semble correspondre.

    Maintenant, je t'avoue que je ne comprends pas bien pourquoi ça marche sur le simu mais pas le device, ni pourquoi il ne serait pas capable d'utiliser un format pour le PDF que visiblement il utilise à l'affichage.

  • Merci pour vos réponses.
    Pour modifier dans la roue, je sais, mais ça ne fonctionne pas : y'a pas de gros gras.
    Bref...
    En tout cas, merci pour celui qui a modifié pour moi.

    Pour vImage_CGImageFormat j'ai regardé mais je vois pas le rapport avec le pdf.
    Peut-être la première page que j'y ajoute.

Connectez-vous ou Inscrivez-vous pour répondre.