Error CGImageComponentType unknown
busterTheo
Membre
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
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
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é.
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'est du Markdown, il faut formater d'un certaine manière.
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.