c# pdf diff : Create pdf with bookmarks from word control SDK platform web page wpf azure web browser Ahola_Tom1-part450

11 
Figur 2. Exempelstruktur på H5BP-paket (kopia från html5boilerplate.com) 
2.3.2  Anpassade versioner 
Via Initializr är det möjligt att generera anpassade versioner av H5BP. På denna sida 
kan man välja vilka delar man vill ha med i Boilerplate-paketet. Som utgångspunkt kan 
man välja den klassiska strukturen, en mall lämpad för en responsiv design eller en mall 
lämpad för webbprojekt i Bootstrap-ramverket utvecklat av Twitter. Efter att man valt 
utgångspaket, kan man ytterligare kryssa specifikt i de delar man behöver ha med. Man 
kan också välja att ladda ner en förenklad version av H5BP. Denna version innehåller 
inga kommentarförklaringar i koden. Detta utgångssätt är dock mera att rekommendera 
åt utvecklare som redan är bekanta med standardinnehållet i H5BP. (Initializr 2013) 
2.4  Innehållet i H5BP 
I följande kapitel kommer vi att dyka djupare in i H5BP:s struktur och innehåll samt se 
vad det fullständiga paketet har att erbjuda. Strukturen som behandlas relaterar till den 
presenterad i Figur 2. 
2.4.1  index.html - märkspråksfilen 
Detta är huvudfilen i mall
en och webbsidans ”skelett”. Här byggs ramen för 
det kom-
mande webbprojektet och härifrån laddar webbläsaren det material som ska visas utåt. 
Fastän mallen heter HTML5 Boilerplate är det inte nödvändigt att skriva HTML5-kod. 
Create pdf with bookmarks from word - add, remove, update PDF bookmarks in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Empower Your C# Project with Rapid PDF Internal Navigation Via Bookmark and Outline
export pdf bookmarks; create bookmark in pdf automatically
Create pdf with bookmarks from word - VB.NET PDF bookmark library: add, remove, update PDF bookmarks in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Empower Your VB.NET Project with Rapid PDF Internal Navigation Via Bookmark and Outline
bookmarks in pdf from word; how to bookmark a page in pdf document
12 
Dagens webbläsare förstår att rendera kod, så länge det finns en doctype i projektet. In-
dex-filens första rad har den enkla HTML5 doctypen <!DOCTYPE html> som rekom-
menderas för standardrendering (w3.org 2013). Om man planerar att använda ett annat 
märkesspråk än HTML5 t.ex. XHTML kan det vara skäl att byta den. 
Äldre webbläsare, speciellt äldre versioner av Microsoft Internet Explorer (IE), ställer 
ofta till med problem för webbutvecklare. Trots att de är föråldrade, är de tråkigt nog 
vanliga i användning och saknar stöd för den nya generationens webbtekniker. H5BP 
har crossbrowser-stöd. Det betyder att koden som finns tillgänglig ska fungera i de 
flesta webbläsare. För webbläsare som saknar stöd för någon funktion presenteras vill-
korlig kod. Detta möjliggörs med villkorstaggar som riktar sig på föråldrade webblä-
sare. 
Figur 3. Raderna 1-18 i index.html (skärmbild från Notepad++) 
De första fyra raderna efter doctype (Figur 3) består av så kallade Internet Explorer 
villkorskommentarer som riktar specifika stilklasser åt elementet html för respektive 
versioner av IE. Orsaken till att dessa kommentarer finns så högt uppe och riktar sig på 
html
-
taggen, är för att de på det sättet undviker webbläsare att ladda fler stildokument 
än de verkligen kommer att använda. IE 6 kommer t.ex. att fastna för taggen [if lt IE7] 
och utsätts således att i stället använda klasserna lt
-
ie9 lt
-
ie8 lt
-
ie7 medan IE 9 [if gt 
IE8] använder standardklasserna, som den klarar av (Irish 2008). Klassen no
-
js används 
VB.NET PDF File Compress Library: Compress reduce PDF size in vb.
Bookmarks. inputFilePath = Program.RootPath + "\\" 3.pdf"; String outputFilePath = Program.RootPath + "\\" 3_optimized.pdf"; 'create optimizing options
bookmarks pdf documents; how to create bookmark in pdf automatically
C# PDF File Split Library: Split, seperate PDF into multiple files
Split PDF file by top level bookmarks. The following C# codes explain how to split a PDF file into multiple ones by PDF bookmarks or outlines.
edit pdf bookmarks; how to add bookmarks to pdf document
13 
av Modernizr som är ett JavaScript
-
bibliotek och testar stödet för HTML5
-
teknologier. 
För varje funktion som stöds ändrar Modernizr klassen till js och webbläsaren renderar 
därefter. Modernizr presenteras mer omgående i kapitel 2.4.3.
Om vi ser på innehållet innanför head
-
taggen stöter vi först på ett par meta
-
taggar. Den 
första  definierar  teckenuppsättningen  på  vanligt  HTML5
-
vis  med  charset=”utf
-
8” 
(w3.org  2013b)  (Mozilla Developer Network  2013).   Den andra är däremot mera 
speciell och har som uppgift att tilldela Google Chrome Frame (GCF) åt äldre versioner 
av IE. GCF är en tilläggsdel för Internet Explorer och gör så att en föråldrad version av 
IE fungerar precis som en modern version av Chrome. Meta
-
taggen upptäcker i fall 
GCF finns installerad i IE och aktiveras därefter automatiskt. Alternativt kan man med 
hjälp  av  taggen  vidarestyra  användaren  till  att  installera  tilläggsdelen.  Om 
serverkonfigurering används, rekommenderas det att man laddar denna meta
-
data ur 
serverkonfigureringsfilen (se kapitel 2.4.4). Dessa två meta
-
taggar är med flit placerade 
innan  title
-
taggen  för  att  undvika  ett  säkerhetsproblem.  Efter  title
-
taggen  finns 
ytterligare två viktiga meta
-
taggar. Den ena är description, och en beskrivning av sidan 
som används av sökmotorer. Den andra är viewport som styr hur sidan laddas i mobila 
enheter, dvs. sidbredden optimeras till skärmstorleken. Efter dessa meta
-
taggar är det 
fritt fram att skriva egna meta
-
taggar. (Google Developers 2012) (HTML5 Boilerplate 
2013b)
Nästa bit innanför head
-
taggen finns till för att de externa referenserna. Stilmallarna 
länkas på det moderna HTML5
-
sättet och som första har vi normalize.css som är en 
nollställningsfil (se kapitel 2.4.2.). Den andra är main.css som finns till för dina egna 
stilar och innehåller bl.a. hjälpklasser och Media Queries för responsiv design. Det 
rekommenderas att man använder enbart dessa stilmallar, eftersom fler referenser skulle 
betyda  fler  HTTP
-
förfrågningar  och  därmed  långsammare  sidladdning.  Efter  detta 
laddas Modernizr
-
biblioteket som är en JavaScript
-
fil (se kapitel 2.4.4).
VB.NET PDF File Split Library: Split, seperate PDF into multiple
how to split a PDF file into multiple ones by PDF bookmarks or outlines Valid value for each index: 1 to (Page Count - 1). ' Create output PDF file path
creating bookmarks in a pdf document; how to add bookmarks to pdf document
C# PDF File Compress Library: Compress reduce PDF size in C#.net
Bookmarks. inputFilePath = Program.RootPath + "\\" 3.pdf"; String outputFilePath = Program.RootPath + "\\" 3_optimized.pdf"; // create optimizing options
export excel to pdf with bookmarks; create pdf bookmarks from word
14 
Figur 4. Raderna 19-40 i index.html (skärmbild från Notepad++). 
Raderna 19-40 som omfattar resten av index.html-filen består av body-taggens innehåll 
och  såklart html-sluttaggen.  Innehållet  i body  börjar  med  en  likadan  IE-
villkorskommentar som vi träffade på redan i sidhuvudet. Denna gång vill man rikta sig 
åt webbläsare äldre än IE 7 och visa en skriftlig uppmuntring om att deras användare 
borde ta och antingen uppdatera sina webbläsare eller installera Google Chrome Frame. 
Om man ämnar stöda IE 6 på sin sida, kan det vara skäl att radera denna rad. Utrymmet 
som följer är avsett för din egen kod. 
På rad 27 laddas jQuery-biblioteket med en script-tag och som källkodsreferens har 
man valt den på Google CDN. URL-referensen är protokollfri utan http:// eller https:// 
för optimerat stöd. Google CDN är vald med omsorg, eftersom den är vanlig och kan 
därför redan finnas cachad i användarens webbläsare. Den är därför också prioriterad 
för att den troligtvis hämtas snabbare än en jQuery-version placerad på den egna ser-
vern. För offline-bruk och för 
fallback
-stöd har man dock även valt att länka till en 
lokalt tillgänglig version på följande rad, med hjälp av ett JavaScript-villkor. De nästa 
script-taggarna (rad 29-30) hämtar plugin.js som är menad för eventuella JavaScript-
tilläggsdelar man kommer att använda och main.js som är menad för egna skript. (Ma-
nian 2012 s. 22 ff.) 
C# Create PDF Library SDK to convert PDF from other file formats
Create multipage PDF from OpenOffice and CSV file. Create and save editable PDF with a blank page, bookmarks, links, signatures, etc.
bookmark a pdf file; create bookmark pdf file
XDoc.Word for .NET, Advanced .NET Word Processing Features
& rotation; Outlines, bookmarks, & thumbnail display; Integrated annotation; More about Web Viewer ▶. Conversion. Word Create. Create Word from PDF; Create Word
bookmark template pdf; bookmarks pdf documents
15 
Längst ner på raderna 33-38 innan body- och html-sluttaggen finns en färdig Google 
Analytics-kodsnutt placerad, färdig att tas i bruk. Det enda man som utvecklare behöver 
göra är att ersätta UA-XXXXX-X, med sin egen sidas unika identifikationskod. Man 
har valt att placera Google Analytics-kodsnutten längst ner på sidan så att metriken 
skickas först efter att sidan laddats helt och hållet. (Google Analytics 2013) 
2.4.2  CSS 
stilkonfigureringsfilerna 
HTML5 Boilerplate använder sig av CSS-normalisering och andra användbara stan-
dardstilar. Paketet innehåller några vanliga hjälpklasser och utskriftstilar. I H5BP följer 
man en så kallad ”
Mobile Firs
t” (mobil först) 
-utvecklingsfilosofi när det gäller design 
och bl.a. ett antal förjusterade Media Queries finns färdigt tillgängliga i CSS:en. Filerna 
som följer med paketet är main.css och normalize.css. (HTML5 Boilerplate 2013c) 
Main.css  innehåller  överst  en  handfull  H5BP
-
standarder  som  bygger  på  CSS
-
normalisering och finns till för att främja användarvänligheten. Till dessa hör:
Typografiska inställningar för att förbättra text-läsbarheten. Exempelvis är nor-
mal textfärg förinställd till mörkgrå som är ögonvänligare än svart. Också länkar 
har setts över så att webbläsarnas olikheter gällande fokuseringsstilar är lika. 
Borttagning av oönskad textskugga vid val av text. Se exempel nedan. 
Figur 5. Exempel på oönskad textskugga (hämtad från twitter.com/miketaylr/status/12228805301 
13.5.2013) 
Som standard följer här även med ”Hot Pink”–
markeringsfärgen, som blivit nå-
got av HTML5 Boilerplates varumärke.  
Finjusteringar för standardplacering av bilder, formulärfält och textareor. T.ex. 
lodrät placering av formulärfält i samband med label-taggar har finjusterats. 
.NET PDF SDK - Description of All PDF Processing Control Feastures
& rotation; Outlines, bookmarks, & thumbnail display; Integrated annotation; More about Web Viewer ▶. Conversion. PDF Create. Create PDF from Word (docx, doc
copy pdf bookmarks; convert word to pdf with bookmarks
VB.NET Create PDF Library SDK to convert PDF from other file
Create multipage PDF from OpenOffice and CSV file. Create and save editable PDF with a blank page, bookmarks, links, signatures, etc.
bookmarks pdf reader; auto bookmark pdf
16 
Stil för en Google Chrome Frame frågeruta. 
Efter dessa standarder finns det ett tomt utrymme för utvecklarens egen CSS-kod. För 
att undvika onödiga HTTP-förfrågningar och därmed nedsaktande av sidornas ladd-
ningshastighet, är det meningen att man skall klara sig med dessa två CSS-filer i sitt 
webbprojekt. Efter utrymmet för den egna CSS-koden följer några användbara hjälp-
klasser som styr hur element visas på sidan. Hjälpklasserna är noga testade och fungerar 
genom alla webbläsare: 
.ir-klassen kan användas för text som vill ersättas med bild (image-replacement). 
Denna bilds referens bör då placeras in i själva stilkonfigureringen. 
.hidden -klassen kan användas för att gömma element totalt, även för skärmlä-
sare om t.ex. innehållet senare ska fyllas med JavaScript. Skärmläsare är hjälp-
medelprogramvara för bl.a. synskadade. (Wikipedia 2013) 
.visuallyhidden -klassen kan användas för att gömma text från webbläsare men 
hålla det synligt för skärmläsare. Denna klass är behändig då man vill förse 
skärmläsare med extrainformation. 
.clearfix -klassen kan användas på ett föräldraelement för att försäkra att dess 
barnelement alltid fysiskt befinner sig inom föräldraelementets ramar om de har 
ställts in att flyta (float), och förhindrar således oönskat överflöde (overflow). 
(Gallagher 2011) 
För att underlätta responsiv webbdesign och för 
”Mobile First” 
-tillvägagångssättet har 
man valt att placera några färdiga Media Queries i main.css. Trots dessa färdiga ramar, 
understryker H5BP-utveklarna ändå att man bör modifiera ramarna enligt sina egna be-
hov och resultat. Det finns så att säga inga perfekta klara lösningar. 
Längst nere i main.css finns fördefinierade utskriftstilar. Utskriftstilarna aktiveras vid 
utskrift automatiskt då stilinnehållet innanför Media Query -taggen @media print{...} 
tas i bruk. Det är ofta vettigt att simplifiera utseendet av webbsidan vid utskrift för att 
bevara sidans läsbarhet. I H5BP tar man bl.a. därför bort sidans eventuella bakgrunds-
färg, rensar alla texteffekter och understryker länkar. Normaltvis hade man kanske län-
17 
kat till en skild stilfil från sidans head-del, men pga. att webbläsare oberoende laddar 
stilfilen vare sig någon utskrift sker eller inte, har man i H5BP valt att lägga allt i 
samma CSS-fil för att undvika multipla HTTP-förfrågningar (Stoyan 2007).  
Normalize.css  är  en modern HTML5-färdig  CSS-nollställningsfil (Gallagher 2012). 
Med nollställning syftar man på utjämning av visuella renderingsolikheter som HTML-
element av standard har i olika webbläsare, dvs. sådana element som man inte separat 
angett stilar för. Man vill på så sätt göra sidorna modernare och hållbarare för olikheter 
som finns i webbläsarna. Detta har också en stor betydelse för crossbrowser-stödet. 
Normalize.css är utvecklat av Nicolas Gallagher i samarbete med Jonathan Neal och är 
ett från H5BP skilt projekt och som man valt att inkludera pga. dess styrka och använd-
barhet. Styrkan kommer från att Normalize.css stöder en bred skara webbläsare, även 
mobila- och innehåller CSS som normaliserar HTML5-element, typografi, listor, inbäd-
dat innehåll som media av olika slag, formulär och tabeller. Normalize.css är en liten 
CSS-fil men lika som Boilerplate-projektet har denna utvecklats till följd av hundratals 
timmar undersökning av webbläsares olikheter och brister men också styrkor. Man har 
valt att hålla normalize.css i H5BP som en separat fil för att den lätt skall kunna upp-
graderas då en ny version dyker upp. För ideal prestanda skulle man givetvis i produkt-
ionsögonblicket kunna slå samman normalize.css med main.css och på så sätt endast 
referera till en stilkonfigureringsfil. Normalize.css mål är följande: 
Behålla användbara webbläsarstandarder, till skillnad från att radera dem 
Normalisera stilar för en bred skara HMTL-element 
Rätta buggar och vanliga inkonsekvenser i webbläsare 
Förbättra användbarheten genom små förbättringar 
Förklara koden genom kommentarer och detaljerad dokumentation 
2.4.3  JS - JavaScript- och jQuery-filer 
H5BP
-
paketet kommer med en katalog js som innehåller två färdiga JavaScript
-
filer 
main.js och plugins.js samt underkatalogen vendor. Main.js är en fil som kan användas 
för utvecklarens egen JavaScript
-
kod. Plugins.js är avsedd för tredje part kod som man 
ämnar ansluta till sitt projekt, till exempel olika jQuery plugins. Hur som helst, om det 
18 
är frågan om en större, tyngre plugin med begränsat användningssyfte, kan det vara skäl 
att placera denna i en skild fil, och på så vis undvika onödig belastning av plugin.js. 
Båda filerna kan vara tillräckliga för små sidor, men såklart i utveckling av större sidor 
behöver man eventuellt överse behovet av fler JavaScript
-
filer. I början står båda filerna 
tomma med undantag från plugin.js. Plugin.js innehåller en kort funktion som undviker 
JavaScript
-
fel i IE 6 och IE 7 om man felsökt sina skript med konsolloggsfunktionen 
(console.log) men glömt kvar den. Med log
-
funktionen i plugin.js loggas uppgifterna 
endast i webbläsare som verkligen stöder konsolloggsfunktionen.
Figur 6. Funktion i plugin.js som undviker JavaScript-fel i webbläsare utan konsol (skärmbild från Notepad++). 
Underkatalogen vendor finns till för tredje part bibliotekkod. På förhand finns här 
placerade en minimerad version av jQuery
-
biblioteket och Modernizr. Referensen till 
jQuery
-
biblioteket finns nere i index.html och det är frågan om en reservkopia som 
används om online
-
biblioteket av någon orsak inte laddas eller om man till exempel 
utvecklar sidan offline.
19 
Modernizr är ett JavaScript
-
bibliotek som upptäcker HTML5
-
och CSS3
-
teknologier i 
slutanvändarens webbläsare. Med hjälp av Modernizr kan man enkelt skriva villkorlig 
JavaScript
-
kod för webbläsare, beroende på om de har eller saknar stöd för någon viss 
modern funktion. Modernizr körs snabbt vid sidladdning och skapar ett JavaScript
-
objekt med upptäckta resultat. Därefter adderas klasser enligt behov till html
-
elementet 
som utvecklaren styr genom att skriva sakenlig CSS. Till exempel om en webbläsare 
saknar  stöd  för  runda  kanter  (border
-
radius), ger Modernizr elementet  klassen no
-
borderradius, medan den för webbläsare med stöd ger elementet klassen borderradius. 
Modernizr kör ett dussin olika test och inkluderar vid behov YepNope.js som laddar 
endast de .js
-
och .css
-
resurser som slutanvändarens webbläsare behöver (YepNope 
2013). Standardversionen av Modernizr som följer med H5BP kan om önskas också 
ersättas av en anpassad version, med endast de funktioner som utvecklaren anser sig 
behöva. (HTML5 Boilerplate 2013d)
2.4.4  .htaccess - Apache HTTP serverkongfigureringsfilen 
Ursprungligen  följer Apache
-
serverns  konfigureringsfil  .htaccess  (hypertext  access) 
med H5BP
-
paketet. Denna fil är packad med en mängd förhandskonfigureringar och 
inställningar för att öka prestandan och säkerheten på nätsidorna. För att utnyttja och 
förstå .htaccess
-
filens funktionalitet gäller det att bekanta sig med dokumentationen för 
den som finns tillgänglig både i H5BP
-
paketets medföljande doc
-
katalog och på H5BP:s 
hemsida.  I  dokumentationen  finns  instruktioner  för  förbättring  av  säkerhet,  G
-
zip 
komprimering, cache
-
förföljning och hantering av URL
-
omdirigeringar som alla styrs 
från denna serverkonfigureringsfil. Pga. olikheter i underliggande utvecklarsystem och 
tidsbrist väljer jag ändå att inte presentera dessa konfigureringar här. För utvecklare som 
arbetar på andra serversystem än Apache finns det också tillhanda konfigurationsfiler 
och omgående dokumentation på H5BP:s hemsida. (HTML5 Boilerplate 2013e)
2.4.5  robots.txt 
kontroll över webbrobotindexering 
Webbrobotar är program som automatiskt genomkorsar webben och indexerar dess 
innehåll för t.ex. sökmotorer som Google. Med robots.txt kan man instruera dessa 
robotar och få dem att exkludera sidor från indexeringen, dvs. undvika att särskilda 
20 
sidor dyker upp i sökresultaten. Webbrobotar letar efter och läser automatiskt robots.txt
-
filen i  nätsidans rotkatalog följer sedan ett såkallat exluderingsprotokoll. Man styr 
robotarna med två enkla kommandon User
-
agent och Disallow. Om man t.ex. vill 
gömma filen test.html för alla sökmotorer kan man göra det med följande kommandon: 
Figur 7. Exempelkodsnutt i robots.txt (skärmbild från Notepad++). 
2.4.6  Övrigt 
Förutom  huvuddelarna  presenterade  tidigare  följer det  också  med  ett  antal  övriga 
behändiga filer i H5BP
-
paketet:
En snyggare och anpassad 404.html 
felsida som kan modifieras enligt önske-
mål för att passa den egna stilen. 
humans.txt är en frivillig sida i rotkatalogen och något speciellt för H5BP. Sidan 
finns till för att presentera utvecklarna av sidan och kan vara intressant speciellt 
för andra utvecklare (humanstxt.org). 
I rotkatalogen finns placerat en färdig favicon, dvs. ikonen som syns uppe vid 
adressfältet och på bokmärken i webbläsaren. Därtill finns det en bunt apple-
touch-icons som används av Apple- men också Android-apparater då man spa-
rar bokmärken på hemrutan. Dessa är givetvis möjliga att byta till egna ikoner. 
crossdomain.xml är en fil m.h.a. vilken man kan bevilja klientprogram såsom 
Adobe:s Flash Player tillstånd att hämta data tvärs över olika domain. (Adobe 
2010) 
readme.md är en lisensinformationsfil och innehåller även listinformation om de 
olika funktionerna i projektet och var man kan bekanta sig mera med dem. 
gitattributesoch gitignore-filer för Git-versionshantering finns inkluderade. 
Också en tom katalog img finns placerad i rotkatalogen där det är meningen att placera 
alla bilder man har med i sitt projekt. I doc
-
katalogen, som nämnts tidigare finns all 
dokumentation för att förstå H5BP
-
filerna.
Documents you may be interested
Documents you may be interested