2009-04-07 13 views
6

sto usando Microsoft.Reporting.WebForms.LocalReport per generare del PDF, tutto funziona come un incantesimo, ma ora il malvagio marketing vuole usare un font personalizzato (stanno usando un tale pazzo argomenti come "identità aziendale" e cose).Come incorporare un font in un PDF con RDLC

ho già stralunate intorno e ora so che

  • ho bisogno ReportViewer 2008 SP1 o superiore
  • il tipo di carattere deve essere contrassegnato come embedding consentito
  • il carattere deve essere TrueType

ma ancora non funziona. credo che RDLC non supporta questa funzione, qualcuno sa se questo è il caso? purtroppo non posso usare i rapporti lato server perché mi manca un server di report.

tia

+0

Trovato una soluzione? Avere lo stesso problema ... – gsharp

+1

Questo funziona per noi, stiamo utilizzando la versione di Microsoft Reporting in bundle con Visual Studio 2010. –

risposta

5

Incorporare opere di carattere con Microsoft Reporting 2010 o dopo, le seguenti restrizioni si applicano ancora

  • carattere deve essere contrassegnato come embedding permesso
  • carattere deve essere di tipo TrueType

Si può verificare il problema che il tuo Font viene incorporato ma il tuo PDF visualizza ancora testo in Arial. Questo mi è successo dopo aver installato alcuni nuovi font su Windows Server 2008 R2, il riavvio di AppPool (ASP.NET MVC) non ha risolto questo problema, era necessario un riavvio del server.

0

Ho fatto un semplice test utilizzando Arial Narrow con Visual Studio 2008 e ha funzionato bene. Ho testato il PDF generato sulla macchina virtuale XP che non ha il font e ha reso ok. Forse è un problema con il font?

Hmm, forse è questo - nel mio test ho usato Winforms.LocalReport non WebForms. Forse è questo il trucco?

0

Stavo avendo lo stesso problema, ma ho trovato che il font non ha bisogno di essere incorporato. Il problema era con l'attributo Font Face in HTML. L'editor HTML stavamo usando generato il tag font in questo modo:

<font face="Impact,Charcoal,sans-serif" size="6">Impact </font> 

che andava bene per il visualizzatore di report, ma per produrre un file PDF, è necessario per assomigliare a questo:

<font face="Impact" size="6">Impact </font> 
Così

Ho aggiunto il codice per sostituire i valori degli attributi prima che fosse associato al rapporto:

htmlValue = htmlValue.Replace("Impact,Charcoal,sans-serif", "Impact") 
       .Replace("Arial,Helvetica,sans-serif", "Arial") 
       .Replace("Georgia,serif", "Georgia") 
       .Replace("Verdana,Geneva,sans-serif", "Verdana") 
       .Replace("'Courier New',Courier,monospace", "Courier New") 
       .Replace("'Lucida Console',Monaco,monospace", "Lucida Console") 
       .Replace("Tahoma,Geneva,sans-serif", "Tahoma") 
       .Replace("'Times New Roman',Times,serif", "Times New Roman") 
       .Replace("'Trebuchet MS',Helvetica,sans-serif", "Trebuchet MS"); 
Problemi correlati