Vai al contenuto

Problema NSString - Char


Messaggi raccomandati

ciao a tutti.

sto cercando di scrivere delle pagine in pdf tramite xcode

utilizzo questo codice:

CGContextSelectFont (pdfContext, "Helvetica", 15, kCGEncodingMacRoman);
CGContextSetTextDrawingMode (pdfContext, kCGTextFill);
CGContextSetRGBFillColor (pdfContext, 0, 0, 0, 1);

//stringa da inserire
const char *barTitolo = [@"Città" UTF8String];

//riga titolo
CGContextShowTextAtPoint (pdfContext, 25, pageRect.size.height - 40, barTitolo, strlen(barTitolo));

il problema sta proprio nella "a" accentata che non viene presa (viene visualizzato Citt†). come posso risolvere? ho già cercato sul web e sulla documentazione, ma non ho trovato nulla che possa aiutarmi.

grazie a tutti smile.png

Hai un'idea per un'app ma non sai programmare? Contattami. Trovi gli indirizzi sul mio sito: http://www.2ciphonedevelopers.com

Link al commento
Condividi su altri siti

Hai provato con cStringUsingEncoding:?

Forse è un problema di codifica del tuo file di codice. Magari legge la stringa da te scritta con una codifica diversa che poi nella conversione a UTF8 ne cambia il risultato.

Alla peggio prova a scrivere così:

const char *barTitolo = {'C', 'i', 't', 't', 224};

224 dovrebbe essere il valore decimale della 'a' accentata in UTF8.

Marco - Gallery

MacBook Nero 2.2 GHz Intel Core 2 Duo - 4 GB RAM - Mac OS X 10.6 Snow Leopard

Link al commento
Condividi su altri siti

sì ho provato con cStringUsingEncoding ma senza risultato. tu come lo useresti in questo caso?

su suggerimento di un utente del forum ufficiale ho anche utilizzato il metodo drawInRect. ecco il codice

   CGRect pageRect = CGRectMake(0, 0, 612, 792);
CGContextRef pdfContext;
CFStringRef path;
CFURLRef url;
CFMutableDictionaryRef myDictionary = NULL;
path = CFStringCreateWithCString (NULL, filename,
	   kCFStringEncodingUTF8);
url = CFURLCreateWithFileSystemPath (NULL, path,
	   kCFURLPOSIXPathStyle, 0);
CFRelease (path);
myDictionary = CFDictionaryCreateMutable(NULL, 0,
	    &kCFTypeDictionaryKeyCallBacks,
	    &kCFTypeDictionaryValueCallBacks);
CFDictionarySetValue(myDictionary, kCGPDFContextTitle, CFSTR("My PDF File"));
CFDictionarySetValue(myDictionary, kCGPDFContextCreator, CFSTR("My Name"));
pdfContext = CGPDFContextCreateWithURL (url, &pageRect, myDictionary);
CFRelease(myDictionary);
CFRelease(url);

   CGContextBeginPage (pdfContext, &pageRect);

// rettangolo nero
CGContextStrokeRect(pdfContext, CGRectMake(20, 20, pageRect.size.width -40, pageRect.size.height - 40));


// testo
   CGContextSelectFont (pdfContext, "Helvetica", 9, kCGEncodingMacRoman);
   CGContextSetTextDrawingMode (pdfContext, kCGTextFill);
   CGContextSetRGBFillColor (pdfContext, 0, 0, 0, 1);

   NSString *text = @"Citt";
   UIFont *font = [uIFont fontWithName:@"Helvetica" size:15];
   CGSize textSize = [text sizeWithFont:font constrainedToSize:CGSizeMake(pageRect.size.width, 2000)
					   lineBreakMode:UILineBreakModeWordWrap];


   [text drawInRect:CGRectMake(20, 20, textSize.width, textSize.height)
	    withFont:font
   lineBreakMode:UILineBreakModeWordWrap
	   alignment:UITextAlignmentLeft];

   CGContextEndPage (pdfContext);


//fine contest del PDF
CGContextRelease (pdfContext);

purtroppo senza risultato. lo stesso utente non capisce come mai questo codice non vada... e ovviamente nemmeno io :)

semplicemente nel file pdf che si salva, non compare nulla, pagina bianca.

suggerimenti?

PS: l'ultimo metodo che mi hai suggerito non posso proprio utilizzarlo. questo perché avevo messo Città come esempio, ma in realtà devo "scrivere" stringhe molto più lunghe...

grazie ciao

Hai un'idea per un'app ma non sai programmare? Contattami. Trovi gli indirizzi sul mio sito: http://www.2ciphonedevelopers.com

Link al commento
Condividi su altri siti

Archiviato

Questa discussione è archiviata e chiusa a future risposte.

×
×
  • Crea Nuovo...