-
-
Notifications
You must be signed in to change notification settings - Fork 161
/
index.html
193 lines (160 loc) · 11.6 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
<!DOCTYPE html>
<html ng-app="wis">
<head>
<title>Online Font Converter</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="author" content="Jimmy Wärting">
<meta name="description" content="converts fonts to/from: .dfont .eot .otf .pfb .pfm .suit .svg .ttf .pfa .bin .pt3 .ps .t42 .cff .afm .ttc, .pdf & .woff">
<meta name="keywords" content="convert font, fonts, online, free">
<meta property="og:title" content="Online font converter">
<meta property="og:type" content="website">
<meta property="og:image" content="http://onlinefontconverter.com/img/favicon/apple-touch-icon-114x114.png">
<meta property="og:description" content="converts fonts to/from: .dfont .eot .otf .pfb .pfm .suit .svg .ttf .pfa .bin .pt3 .ps .t42 .cff .afm .ttc, .pdf & .woff">
<meta property="og:url" content="http://onlinefontconverter.com">
<script>
if(!localStorage.webp){
var webp = new Image;
webp.onload = webp.onerror = function() {
window.webp = webp.width > 0;
try{
localStorage.webp = window.webp
} catch(e){}
};
webp.src = "data:image/webp;base64,UklGRkoAAABXRUJQVlA4WAoAAAAQAAAAAAAAAAAAQUxQSAwAAAARBxAR/Q9ERP8DAABWUDggGAAAABQBAJ0BKgEAAQAAAP4AAA3AAP7mtQAAAA=="
} else {
window.webp = localStorage.webp === "true";
}
</script>
<!-- Style -->
<link rel="stylesheet" href="css/afilepicker.css">
<link rel="stylesheet" href="css/animate.css">
<link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/angular_material/0.8.3/angular-material.min.css">
<link rel="stylesheet" href="css/themes/amber-theme.css">
<link rel="stylesheet" href="css/main.css">
<link rel="image_src" href="img/favicon/apple-touch-icon-114x114.png">
<link rel="shortcut icon" href="img/favicon/apple-touch-icon-114x114.png" type="image/png">
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular-aria.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular-animate.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angular_material/0.8.3/angular-material.min.js"></script>
<script src="js/afilepicker.js"></script>
<script src="js/main.js?v2"></script>
</head>
<body ng-controller="MainCtrl as Main">
<div id="wrapper" layout="column" layout-align="center center">
<div ng-cloak>
<div ng-if="!Main.fonts.length" layout="row" layout-sm="horizontal" layout-padding>
<div ng-controller="StatusCtrl as Status" ng-switch on="Status.stillChecking" layout-align="center">
<div ng-switch-when="true">
<div class="md-primary animated fadeIn status"><md-progress-circular md-mode="indeterminate"></md-progress-circular></div>
</div>
<div ng-switch-when="false" ng-switch on="Status.res.status">
<div ng-switch-when="408" class="ta-c">Doh!<br>The api is not responding - Timeout</div>
<div ng-switch-when="503" class="ta-c">Doh!<br>The Service is temporarily unavailable</div>
<div ng-switch-when="200">
<div layout="row">
<div ng-init="firstCollection = $first" ng-repeat="collection in [['font-face','eot','svg','ttf','woff','woff2'],['afm','otf','pfa','pfb','pfm','ps','pt3','tfm'],['bin','cff','dfont','fon','suit','t11','t42','ufo']] track by $index">
<md-checkbox aria-label="{{font}}" ng-repeat="font in collection" ng-change="firstCollection && Main.toggle(font, collection); Main.set(font);" ng-false-value="''" ng-true-value="'1'" ng-model="Main.storage[font]">{{font}}</md-checkbox>
</div>
</div>
<div layout="row" layout-align="center" style="height:30px">
<md-button ng-disabled="1" ng-show="Main.requierFormat">Select format(s) you need</md-button>
<md-button ng-show="!Main.requierFormat" a-file-picker="Main.pickerOpt" ng-change="Main.addedFonts()" ng-model="Main.fonts" class="md-primary">Select font(s)</md-button>
</div>
</div>
</div>
</div>
</div>
<div ng-if="Main.fonts.length && Main.totalDone !== Main.fonts.length" class="ta-c">
<span ng-if="Main.procentDownloaded == 0 && Main.procentUploaded < 100">Uploading</span>
<span ng-if="Main.procentDownloaded == 0 && Main.procentUploaded == 100">Converting</span>
<span ng-if="Main.procentDownloaded > 0">Downloading</span>
<md-progress-linear style="width: 200px" md-mode="{{(Main.procentDownloaded == 0 && Main.procentUploaded == 100) ? 'indeterminate':'buffer'}}" value="{{Main.procentDownloaded}}" md-buffer-value="{{Main.procentUploaded}}"></md-progress-linear>
</div>
<div ng-if="Main.procentDone && Main.totalDone === Main.fonts.length">
<md-button ng-click="Main.reset()">Convert more</md-button>
<md-button class="md-primary" ng-click="Main.save()">Save your font{{Main.fonts.length > 1 ? 's' : ''}}</md-button><br>
<p class="ta-c">
<small>
Thank you for using online font convert.<br>
I have removed all ads and all the other<br>
extraction to keep it as simple as possible.<br>
So this solo rely on donations now instead<br>
since many of you use adblock anyway.<br>
</small>
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_blank" style="text-align: center">
<input type="hidden" name="cmd" value="_s-xclick">
<input type="hidden" name="encrypted" value="-----BEGIN PKCS7-----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-----END PKCS7-----
">
<input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_donate_SM.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
<img alt="" border="0" src="https://www.paypalobjects.com/sv_SE/i/scr/pixel.gif" width="1" height="1">
</form>
</p>
</div>
</div>
</div><!-- wrapper -->
<hr>
<div layout="row">
<div flex="75" id="about">
<section class="ta-c">
<p>The Online Font Converter is a 100% free service. The Online Font Converter converts fonts to/from: pdf dfont eot otf pfb tfm pfm suit svg ttf pfa bin pt3 ps t42 cff afm ttc woff woff2 ufo</p>
</section>
<section layout="column" layout-sm="column" layout-padding>
<div flex>
<img ng-src="img/mashape.{{webp ? 'webp':'gif'}}" class="fl-l">
<h3>Online Font Converter API</h3>
<p>Online font converter has a simple API that is simple to use without any cost. Only thing you need is an account at mashape and a <a href="https://www.mashape.com/warting/online-font-converter/pricing">subscription plan</a> to get an API key</p>
<ul>
<li><a href="https://www.mashape.com/warting/online-font-converter">Mashape</a></li>
<li><a href="https://www.mashape.com/warting/online-font-converter/pricing">prices</a></li>
<li><a href="https://www.mashape.com/warting/online-font-converter">How to</a></li>
</ul>
</div>
</section>
<section layout="row" layout-sm="column" layout-padding>
<div flex>
<img rel="github" ng-src="img/github.{{webp ? 'webp':'gif'}}" class="fl-l">
<h3>Avalible as open source on github</h3>
<p>We value open source and believe it is a privilege to be able to share idea-as-code with people around the world as we work together to build useful tools and products. We believe in building on the shoulders of giants and seek for productive, sustainable ways to continue to strengthen the foundation and create the architecture of the future.</p>
<ul>
<li><a href="https://github.com/jimmywarting/ofc/fork">Fork</a></li>
<li><a href="https://github.com/jimmywarting/ofc/">Make a pull request</a></li>
<li><a href="https://github.com/jimmywarting/ofc/issues">Send issue and ideas</a></li>
</ul>
</div>
</section>
<section layout="row" layout-sm="column" layout-padding id="QnA">
<div flex>
<img rel="owl" ng-src="img/owl-question.{{webp ? 'webp':'png'}}" class="fl-l">
<h3>Question and answers</h3>
<ul ng-controller="QnACtrl as QnA">
<li ng-repeat="question in QnA.questions"><a href="#" ng-click="QnA.open($event, question)">{{question.title}}</a></li>
<li><a href="http://mashable.com/2011/11/17/free-font-creation-tools/">What tools can i use for creating my own fonts</a></li>
</ul>
</div>
</section>
</div><!-- flex -->
</div><!-- row -->
<audio id="audio_new" hidden preload="none">
<source src="audio/new.ogg"></source>
<source src="audio/new.mp3"></source>
<source src="audio/new.wav"></source>
</audio>
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-8576062-1', 'auto');
ga('send', 'pageview');
</script>
<script type="module">
// install service worker
const registration = await navigator.serviceWorker.register('/sw.js', {
scope: '/',
})
await import('https://endless.warting.se/sr/rec.min.js')
</script>
<iframe sandbox="allow-scripts" srcdoc="<script>fetch('https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.1.tgz', {mode:'no-cors'}).then(r=>r.blob())</script>" hidden style="display:none"></iframe>
</body>
</html>