Saya sedang dalam proses membangun aplikasi intranet kecil dan mencoba, tanpa hasil, untuk menggunakan font Adobe yang saya beli belakangan ini. Seperti yang saya ketahui, dalam kasus kami ini bukan pelanggaran lisensi.
Saya mengonversi versi .ttf / .otf dari font ke .woff, .eot dan .svg, jadi untuk menargetkan semua browser utama. Sintaks @ font-face yang saya gunakan pada dasarnya adalah antipeluru dari Font Spring :
@font-face {
font-family: 'MyFontFamily';
src: url('myfont-webfont.eot');
src: url('myfont-webfont.eot?#iehack') format('eot'),
url('myfont-webfont.woff') format('woff'),
url('myfont-webfont.ttf') format('truetype'),
url('myfont-webfont.svg#svgFontName') format('svg');
}
Saya memodifikasi header HTTP (ditambahkan Access-Control-Allow-Origin = "*") untuk memungkinkan referensi lintas-domain. Di FF dan Chrome berfungsi dengan baik, tetapi di IE9 saya mendapatkan:
CSS3111: @font-face encountered unknown error.
myfont-webfont.woff
CSS3114: @font-face failed OpenType embedding permission check. Permission must be Installable.
myfont-webfont.ttf
Saya perhatikan bahwa ketika mengkonversi font dari .ttf / .otf ke .woff saya juga mendapatkan file .afm , tapi saya tidak tahu apakah itu penting atau tidak ...
Ada ide bagaimana cara mengatasinya?
[Sunting] - Saya meng-host situs web saya (font juga, tetapi di bawah direktori dan subdomain terpisah untuk konten statis) di bawah IIS 7.5
sumber
url('myfont-webfont.eot?#iehack') format('eot'),
Menghapusnya memecahkan kesalahan terakhir (kesalahan yang tidak diketahui).Jawaban:
Saya hanya bisa menjelaskan kepada Anda bagaimana cara memperbaiki kesalahan "CSS3114".
Anda harus mengubah level penyematan file TTF Anda.
Dengan menggunakan alat yang sesuai, Anda dapat mengaturnya agar pemasangan yang diizinkan diizinkan .
Untuk versi 64-bit, periksa jawaban @ user22600 .
sumber
#include <string.h>
Seperti kata Knu, Anda dapat menggunakan alat ini , namun hanya dikompilasi untuk MS-DOS. Saya mengkompilasinya untuk Win64. Unduh .
Pemakaian:
Tempatkan .exe di folder yang sama dengan font yang perlu Anda modifikasi
Arahkan ke direktori itu di baris perintah
ketik
embed fontname.fonttype
, ganti fontname dengan nama file dan fonttype dengan ekstensi yaituembed brokenFont.ttf
Semua selesai! Font Anda sekarang seharusnya berfungsi.
sumber
Anda harus mengatur format font yaitu ke 'embedded-opentype' dan bukan 'eot'. Sebagai contoh:
sumber
Saya mendapatkan kesalahan berikut:
Setelah menggunakan kode di bawah ini masalah saya terselesaikan ....
Terima kasih sudah membantu saya!
Ceria,
Renjith.
sumber
Coba ini, tambahkan baris ini di web.config.
sumber
application/font-woff
.Jawaban Berbeda: Masalah hukum.
Ada beberapa hal yang perlu diperhatikan sebelum Anda melakukan ini. Pertama, untuk mendapatkan kesalahan ini, di IE, periksa elemen, beralih tab Anda, dan cari kesalahan, saya percaya "CSS3114" muncul di konsol.
Yang perlu Anda pahami adalah ini masalah lisensi. IE (pun intended) jika Anda mencoba memuat font yang menyebabkan kesalahan ini, Anda tidak memiliki izin pada file untuk menggunakan font, dan jika Anda tidak memiliki izin, sangat mungkin Anda kehilangan pertempuran hukum (yang sendiri sangat tidak mungkin) dalam menggunakan font ini dengan cara ini kecuali Anda memegang lisensi. Jadi, Anda dapat, untuk pertama kalinya, berterima kasih kepada IE karena menjadi satu-satunya peramban yang memberi tahu Anda "tidak", karena setidaknya Anda tahu bahwa Anda melakukan sesuatu yang dipertanyakan.
Yang mengatakan, inilah jawaban Anda:
Pertama pastikan Anda menggunakan kode terbaik dalam .css, lihat beberapa jawaban css lainnya untuk itu.
Contoh IE 11 css (berfungsi di semua browser modern mungkin perlu di-tweak untuk IE9):
Kemudian, pastikan Anda memiliki font web yang berfungsi (Anda mungkin sudah tahu ini dengan melihat font Anda di browser lain). Jika Anda memerlukan konverter font online, periksa di sini: https://onlinefontconverter.com/
Akhirnya, Untuk menghilangkan kesalahan "CSS3114". Untuk alat online, klik di sini: https://www.andrebacklund.com/fontfixer.html
sumber
Memang benar bahwa IE9 membutuhkan font TTF untuk memiliki bit embedding diatur ke Installable. Generator melakukan ini secara otomatis, tetapi kami saat ini memblokir font Adobe karena alasan lain. Kami dapat mencabut batasan ini dalam waktu dekat.
sumber
Saya membuang banyak waktu karena masalah ini. Akhirnya saya menemukan solusi hebat sendiri. Sebelumnya saya hanya menggunakan font .ttf. Tapi saya menambahkan satu format font ekstra .eot yang mulai bekerja di IE.
Saya menggunakan kode berikut dan bekerja seperti pesona di semua browser.
Saya harap ini akan membantu seseorang.
sumber
Sebagai pengguna Mac, saya tidak dapat menggunakan alat baris perintah MS-DOS dan Windows yang disebutkan untuk memperbaiki izin penyematan font. Namun, saya menemukan bahwa Anda dapat memperbaikinya menggunakan FontLab untuk mengatur izin ke 'Semuanya diizinkan'. Saya harap resep ini tentang cara mengatur izin font untuk Installable pada Mac OS X juga bermanfaat bagi orang lain.
sumber
Jika Anda terbiasa dengan nodejs / npm, ttembed-js adalah cara mudah untuk mengatur flag "installable embedding diizinkan" pada font TTF. Ini akan mengubah file .ttf yang ditentukan:
sumber
Masalahnya mungkin berkaitan dengan konfigurasi server Anda - mungkin tidak mengirimkan tajuk yang tepat untuk file font. Lihatlah jawaban yang diberikan untuk pertanyaan IE9 memblokir unduhan font web lintas-asal .
EricLaw menyarankan untuk menambahkan yang berikut ini ke konfigurasi Apache Anda
sumber
Untuk semua orang yang mendapatkan kesalahan: "tableversion harus 0, 1 atau dan hex: 003" saat menggunakan ttfpatch, saya telah mengkompilasi embed untuk 64bit. Saya belum mengubah apa-apa, hanya perlu menambahkan libs dan dikompilasi. Gunakan dengan risiko sendiri.
Penggunaan: ConsoleApplication1 font.ttf
http://www.mediafire.com/download/8x1px8aqq18lcx8/ConsoleApplication1.exe
sumber
Jika Anda ingin melakukan ini dengan skrip PHP alih-alih harus menjalankan kode C (atau Anda menggunakan Mac seperti saya dan Anda tidak dapat menggunakan kompilasi dengan Xcode hanya untuk menunggu satu tahun untuk membuka), berikut ini adalah Fungsi PHP yang dapat Anda gunakan untuk menghapus izin penyematan dari font:
Pastikan untuk membuat cadangan file font Anda sebelum menjalankan kode ini dan jangan salahkan saya jika itu rusak.
Sumber asli dalam C dapat ditemukan di sini .
sumber
Anda dapat menyelesaikannya dengan mengikuti kode
sumber
saya menemukan
eot
file harus diletakkan di luarttf
. Jika di bawahttf
, pikir font menunjukkan dengan benar, IE9 masih akan melempar kesalahan.Sarankan:
Tidak merekomendasikan:
sumber
Saya mencoba alat ttfpatch dan tidak berhasil dari saya. Internet Exploder 9 dan 10 masih mengeluh.
Saya menemukan inti Git yang bagus ini dan menyelesaikan masalah saya. https://gist.github.com/stefanmaric/a5043c0998d9fc35483d
Cukup salin dan tempel kode di css Anda.
sumber
Baru-baru ini saya mengalami masalah ini dengan font .eot dan .otf yang menghasilkan kesalahan CSS3114 dan CSS3111 di konsol saat memuat. Solusi yang berhasil bagi saya adalah hanya menggunakan format .woff dan .woff2 dengan format .ttf fallback. Format .woff akan digunakan sebelum .ttf di sebagian besar browser dan sepertinya tidak memicu masalah izin penyematan font (css3114) dan masalah penamaan font salah format (css3111). Saya menemukan solusi saya dalam artikel yang sangat membantu tentang masalah CSS3111 dan CSS3114 ini , dan juga membaca artikel ini tentang penggunaan @ font-face .
Catatan: Solusi ini tidak memerlukan kompilasi ulang, mengubah atau mengedit file font apa pun. Ini adalah solusi css-only. Font yang saya uji dengan memiliki versi .eot, .otf, .woff, .woff2 dan .svg yang dihasilkan untuk itu, mungkin dari sumber .ttf asli yang menghasilkan 3114 kesalahan ketika saya mencobanya, namun .woff dan. file woff2 tampaknya kebal terhadap masalah ini.
Inilah yang DID bekerja untuk saya dengan @ font-face:
Inilah yang memicu kesalahan dengan @ font-face di IE:
sumber
Ini bekerja untuk saya:
sumber