Mer

Arcpy Export to PDF, loop Element Text for å endre med hver PDF


Jeg bygger et skript som eksporterer pdfs basert på brukerinndata, hver pdf trenger en annen dato (ikke aktuell) da dataene ble oppdatert per datadrevet attributt. Skriptet går bra, men tar bare den siste brukerinngangen. Jeg blir stumpet i å prøve å finne ut hvordan jeg får elementteksten til å endres med hver pdf som eksporteres.

# Eksporter kart til pdf ddp = mxd.dataDrivenPages pageNumbers = sys.argv [5] pgIndex = ddp.currentPageID text_elements = arcpy.mapping.ListLayoutElements (mxd, "TEXT_ELEMENT") for pageNum i pageNumbers.split (","): ddp .currentPageID = int (pageNum) pageName = ddp.pageNameField.name for element i text_elements: if element.name == 'My Text Field': if (pgIndex == 1): element.text = sys.argv [6] for element i text_elements: if element.name == 'My Text Field': if (pgIndex == 2): element.text = sys.argv [7] for element i text_elements: if element.name == 'My Text Field' : hvis (pgIndex == 3): element.text = sys.argv [8] arcpy.mapping.ExportToPDF (mxd, r "C:  test " ". pdf", image_quality = "BEST", oppløsning = " 300 ") mxd.save () del mxd

Et par ting:

Utgangsnavnet for pdf-en din ser feil ut, du har:

r "C:  test " ". pdf"

skal det ikke være noe sånt som:

r "C:  test  mytest_" + pageName + ".pdf"

Måten du har koden din innrykket på, betyr at den løper gjennomtiluttalelse deretter eksporterer sideoppsettet, som vil være ditt siste kart. Jeg antar at du vil eksportere hvert kart på hver sløyfetilLøkke? Hvis så, trykk ExportToPDF inn slik at den er innenfor sløyfen.

OPPDATER:

Prøv å erstatte linjene:

hvis (pgIndex == 1):

med alle deres ekvivalenter

hvis (pageNum == 1):

Du kan formatere din egen dynamiske tekst, forutsatt at datoen du ønsker er et attributt for dataene. Bruk indekslagsattributtet (eller visningsuttrykk) nevnt i sideseksjonen nær bunnen av den koblede websiden ovenfor.


ListLayoutElements returnerer alltid et Python-listeobjekt selv om bare ett sideelement returneres. For å returnere et elementobjekt, må en indeksverdi brukes på listen (f.eks. Elm = arcpy.mapping.ListLayoutElements (mxd) [0]). For sløyfer på en liste er det en enkel mekanisme å gjenta gjennom hvert element i listen (f.eks. For alm i arcpy.mapping.ListLayoutElements (mxd):).

ListLayoutElements returnerer bare elementer fra et sideoppsett og ikke kartkommentarelementer som kan eksistere innenfor en dataramme.

Hvert sideelement har en navnegenskap som kan angis i dialogboksen for elementegenskaper i ArcMap (plassert i kategorien Størrelse og posisjon). Det er kartdokumentforfatterens ansvar å sikre at hvert sideelement får et unikt navn slik at elementene kan identifiseres unikt. Hvis to elementer har samme navn, er det ingen måte å sikre at det er elementet du vil referere til.

ListLayoutElements vil også returnere elementene i et gruppeelement til en flat liste. Dette gjør det mulig å enkelt søke og erstatte tekststrenger, for eksempel uten å måtte navigere gjennom en gruppeelementstruktur.

Element-type-parameteren kan hoppes over ganske enkelt ved å sende en tom streng ("") eller angi element_type = Ingen.

Jokertegn brukes på navnegenskapen og er ikke store og små bokstaver. En jokertegn med "* title" vil returnere et sideelement med navnet Main Title. Jokertegn kan hoppes over i skriptsyntaks ganske enkelt ved å sende en tom streng (""), en stjerne (*), eller angi jokertegn = Ingen, eller ingenting i det hele tatt hvis det er den siste valgfrie parameteren i syntaksen.


Problem med tekstinnpakning i generert pdf-fil

Jeg har et problem knyttet til innpakning av tekst i pdf-format. For alle formatene som xls, rtf og pptx fungerer rapporten bra, men i pdf blir noe tekst pakket inn, dvs. noen bokstaver i teksten, spesielt de siste bokstavene blir skrevet ut i neste linje. Jeg har prøvd nesten alle alternativene i egenskapene for den teksten. Den eneste måten jeg kunne redusere effekten på var å endre pdf-skriftnavnet til ganger roman for denne teksten. Men selv dette fungerer ikke i noen tilfeller.

Utdraget inneholder problemet TextField:

Jeg vil være veldig takknemlig hvis du deler en løsning på dette. Takk.

P.s Jeg får dette problemet når jeg genererer rapporten fra Ireport 4.0.2


jsPDF kan bruke plugins. For å gjøre det mulig å skrive ut HTML, må du inkludere visse plugins og derfor må du gjøre følgende:

  1. Gå til https://github.com/MrRio/jsPDF og last ned den nyeste versjonen.
  2. Ta med følgende skript i prosjektet ditt:
    • jspdf.js
    • jspdf.plugin.from_html.js
    • jspdf.plugin.split_text_to_size.js
    • jspdf.plugin.standard_fonts_metrics.js

Hvis du vil ignorere visse elementer, må du merke dem med en ID, som du deretter kan ignorere i en spesiell elementbehandler av jsPDF. Derfor bør HTML-en din se slik ut:

Deretter bruker du følgende JavaScript-kode for å åpne den opprettede PDF-filen i en PopUp:

For meg skapte dette en fin og ryddig PDF som bare inkluderte linjen 'skriv ut til pdf'.

Vær oppmerksom på at spesialelementhåndtererne bare håndterer ID-er i den nåværende versjonen, som også er oppgitt i et GitHub-nummer. Det sier:

Fordi samsvaringen gjøres mot hvert element i nodetreet, var mitt ønske å gjøre det så raskt som mulig. I så fall betydde det "Bare element-ID-er samsvarer" Element-ID-ene gjøres fortsatt i jQuery-stil "#id", men det betyr ikke at alle jQuery-velgere støttes.

Derfor fungerte det ikke for meg å erstatte '#ignorePDF' med klassevalg som '.ignorePDF'. I stedet må du legge til samme handler for hvert element, som du vil ignorere som:

Fra eksemplene er det også uttalt at det er mulig å velge koder som 'a' eller 'li'. Det kan være litt ubegrenset for de fleste bruksområdene:

Vi støtter spesialelementbehandlere. Registrer dem med jQuery-stil ID-velger for enten ID eller nodenavn. ("#iAmID", "div", "span" osv.) Det er ingen støtte for noen annen type velger (klasse, sammensatt) på dette tidspunktet.

En veldig viktig ting å legge til er at du mister all stilinformasjonen din (CSS). Heldigvis er jsPDF i stand til å formatere h1, h2, h3 etc. pent, noe som var nok for mine formål. I tillegg vil den bare skrive ut tekst i tekstnoder, noe som betyr at den ikke vil skrive ut verdiene til tekstområder og lignende. Eksempel:


Du kan gjøre det i photoshop.

Fra toppmenyen (eksisterer ikke lenger i cs6): Fil> Automatiser> PDF-presentasjon ..

I PDF-presentasjonsvinduet:

  1. Velg filene du vil konvertere til pdf.
  2. Velg Dokument med flere sider.
  3. Klikk Lagre-knappen.

..og så Lagre abobe PDF-vindu kommer opp, hvor du kan definere pdf-innstillingene og deretter lagre den.

Hvis det ikke er så opplagt, vil hver enkelt fil bli lagt inn på sine egne sider i pdf-dokumentet.

En annen måte å gjøre dette på ville være på Adobe Acrobat Pro.

Slik kombinerer du flere filer i en pdf i Acrobat Pro: Fil> Kombiner> Slå sammen filer i én pdf

(Du kan også endre sideplasseringer, slette sider, legge til sider osv.)

I OSX kan du gjøre dette med Preview.app. Åpne en PDF, dra en annen til miniatyrpanelet for å legge til flere PDF-filer. (FWIW, PhotoShop er ikke det rette verktøyet for å lage et CV)

Her er en video som viser trinnene for hvordan du kan kombinere flere PDF-dokumenter i en PDF-fil med komplette data. Kernel for PDF split & amp Merge-programvare gir deg også PDF-filspaltingsfunksjon, ved hjelp av denne funksjonen kan du dele over PDF-fil i mange deler.

Veien er enkel å bruke og støtte med alle MS windows 8 og nyere versjoner.

Du kan ganske enkelt bruke Adobe Acrobat Pro som følger med Adobe Suite / Cloud, og "sette inn" sidene dine i ett dokument.

For å sette inn hver side, åpne din første PDF-fil, og bruk deretter disse tastene samtidig:

Kommando + Skift + Jeg

Et vindu åpnes, og du kan velge alle filene du vil sette inn.

Du kan også endre rekkefølgen på disse sidene ved å åpne panelet "sideminiatyr" til venstre og bare dra dem dit du vil ha dem. Hvis du høyreklikker der, vil du se andre alternativer, inkludert å sette inn sider nøyaktig hvor du vil, for eksempel mellom to andre sider.

Hvis du trenger å senke filstørrelsen på PDF-filen etter å ha gjort dette, kan du ta en titt her.


Importerer regnearkdata som lag til Adobe Illustrator

Jeg har et regneark med TON innhold som jeg trenger å importere til lag via Illustrator. Jeg har flere kolonner som må importeres for noen visittkort. Så for eksempel navn, e-post, telefon, tittel.

Er det en måte å importere dette regnearket til illustrator slik at jeg kan ha ett lag for hver rad ved å sette opp noen variabler i Illustrator-filen?

Hvis ikke, vil dette ta veldig lang tid. Jeg har omtrent 100 jeg trenger å gjøre.

Jeg la først ut dette spørsmålet på en generell måte ved å bruke et eksempel på visittkort. Noen mennesker kom med et godt svar på dette spørsmålet, som var å bruke InDesign i stedet for Illustrator. Som i eksemplet med å lage visittkort ville vært den rette veien å gå. Å prøve å forenkle forespørselen min returnerte åpenbart feil svar, så jeg vil oppgi det mer komplekse eksemplet på hva jeg prøver å gjøre:

Jeg lager lysbilder for en video basert på data fra et regneark. Gutta som gjør videoen trenger filen i illustratoren, og de trenger dataene fra regnearket på et separat lag per datasett.

Så det er derfor jeg må bruke illustrator, og hvorfor jeg må gjøre det slik jeg prøver.

Jeg kom rundt 75% av veien dit ved å lage variabler og datasett ved hjelp av Illustrator. Jeg gjorde en prøvetest av 5 datasett (som sagt jeg har omtrent 100 totalt), og jeg var i stand til å lage et nytt lag og lime inn datasettet. Men dessverre, slik AI-handlingene fungerer, kan jeg ikke velge det nye laget som er opprettet, så det limer alt på ett lag.

I tillegg til dette problemet, må jeg først opprette en XML-fil, fordi datasettene ikke kan importeres fra et regneark. Jeg har ikke sett på dette, men dette vil være en annen prosess i seg selv.


Informasjonsverdisløyfen

Teknologipakken som gjør at IoT lover å gjøre nesten ethvert objekt til en kilde til informasjon om det objektet. Dette skaper både en ny måte å skille produkter og tjenester på, og en ny verdikilde som kan styres i seg selv. Å realisere IoTs fulle potensial motiverer et rammeverk som fanger serien og sekvensen av aktiviteter som organisasjoner skaper verdi av informasjon gjennom: Information Value Loop. Legg først merke til at verdisløyfen er a Løkke: En handling - tilstanden eller oppførselen til ting i den virkelige verden - gir opphav til informasjon, som deretter blir manipulert for å informere fremtidig handling. For informasjon for å fullføre løkken og skape verdi, må den passere gjennom trinnene i løkken, hvert trinn er aktivert av spesifikke teknologier. An handling overvåkes av en sensor, hvilken skaper informasjon. Denne informasjonen går gjennom en Nettverk slik at det kan være kommunisert, og standarder—Teknisk, lovlig, regulatorisk eller sosial — tillater at informasjonen blir samlet over tid og rom. Utvidet intelligens er et generisk begrep ment å fange all slags analytisk støtte, som samlet brukes til analysere informasjon. Sløyfen fullføres via utvidet oppførsel teknologier som enten muliggjør automatisert autonom handling eller former menneskelige beslutninger på en måte som fører til forbedret handling. Mengden verdi som skapes av informasjon som går gjennom løkken, er en funksjon av verdidriverne som er identifisert i midten. Hvis du faller inn i tre generiske kategorier - størrelse, risiko og tid - er de spesifikke driverne som er oppført ikke uttømmende, bare illustrative. Ulike applikasjoner vil ha nytte av vekt på forskjellige drivere.

Utforske informasjonsverdisløyfen

IVL gir en guide for å identifisere forretningsverdi og fange den verdien gjennom handling. 9 Den kartlegger informasjonsflyten gjennom fem trinn: lage, kommunisere, samle, analysere og handle. Det er viktig å innse at informasjonen må fullføre sløyfen før noen verdi som ligger i den informasjonen kan fanges opp gjennom informert handling. Selv om ett eller flere av IVL-trinnene kan minimeres, må hvert trinn krysses før verdien kan ekstraheres. Dette punktet er viktig og fortjener utforsking for å illustrere samspillet mellom IVL-stadier, teknologier og verdidrivere.

Informasjonsflaskehals: Informasjonsflyt kan hemmes av mangler i IVL-stadier eller teknologier. For eksempel kan implementering av dårlig planlagte eller utførte datastandarder alvorlig påvirke verdifangst ved ikke å tillate handling basert på nøyaktig eller fullstendig informasjonsaggregering og analyse. I dette tilfellet kan informasjon flyte helt rundt løkken, men verdien som kan fanges kan være minimal. Verdi drivere: Teknologiene og stadiene i IVL kan være fullt operativt og godt implementert, men verdien av informasjonen som er fanget, kan variere på grunn av forskjellige verdidrivere. Tenk for eksempel på størrelse: Det er noe verdt i en enkelt smartmåler som genererer en "strøm ut" -melding som kommuniseres rundt IVL for handling. Men det er mye mer verdi i en million smarte målere som rapporterer sin strømstatus gjennom IVL for aggregering og analyse, og genererer en visning av serviceområdet for utbedring etter storm. I dette tilfellet fungerer de to scenariene i nøyaktig samme sløyfe ved hjelp av de samme teknologiene som verdidriveren - størrelsen - er den eneste forskjellen.


Modeller for implementering av Dublin Core Description på nettet

Den utviklende RDF-metadataarkitekturen støtter en rekke ressursbeskrivelsesmodeller, hver med implikasjoner for funksjonalitet og ledelse.

Den enkleste måten å distribuere metadata på nettet er å legge dem inn i HTML-dokumenter (ved hjelp av META-koden). Konvensjoner eksisterer for å støtte inkludering av enkle metadata i HTML versjoner 2.0 og nyere. HTML 4.0-spesifikasjonen som ble utgitt i juli, inneholder flere attributter for META-koden som tillater kvalifiseringene som er nødvendige for mer komplekse implementeringer. Fordelen med innebygde metadata er at ingen ekstra systemer må være på plass for å bruke dem. Metadataene er integrert i ressursen og kan høstes av webindekseringsagenter.

En modell som er mer kjent for bibliotekssamfunnet, inkluderer det som er kjent på webtalen som et tredjeparts etikettbyrå, det vil si en enhet som samler og administrerer metadataposter som refererer til ressurser, men som ikke er innebygd i ressursen (en bibliotekatalog eksempel). Denne modellen er viktig ikke bare for biblioteker og museer, men støtter også utviklingen av byråer som kan merke ressurser i henhold til aldershensyn eller andre akseptabilitetskriterier.

En tredje modell involverer også administrasjon av poster av en distinkt enhet, men ikke nødvendigvis Dublin Core-poster per se. Å administrere et bredt utvalg av datalagre innebærer ofte å avstemme veldig forskjellige beskrivelsesmodeller. En tilnærming til å oppnå interoperabilitet i et slikt miljø innebærer å kartlegge mange beskrivelseskjemaer i et felles sett som Dublin Core, noe som gir brukerne en enkelt spørringsmodell.


Kobberstatistikk og informasjon

Zambia er den åttende største kobberprodusenten i verden. USGS-vurderinger anslår at potensialet for uoppdagede kobberforekomster i Zambia er større enn en gang antatt. Fotokreditt: USGS

Kobber finnes vanligvis i naturen i forbindelse med svovel. Rent kobbermetall produseres vanligvis fra en flertrinnsprosess, som begynner med utvinning og konsentrering av malmer av lav kvalitet som inneholder kobbersulfidmineraler, og etterfulgt av smelting og elektrolytisk raffinering for å produsere en ren kobberkatode. En økende andel kobber produseres fra surt utvasking av oksidert malm. Kobber er et av de eldste metallene som noensinne er brukt, og har vært et av de viktigste materialene i utviklingen av sivilisasjonen. På grunn av egenskapene, enkeltvis eller i kombinasjon, av høy duktilitet, smidbarhet og termisk og elektrisk ledningsevne, og dens motstandsdyktighet mot korrosjon, har kobber blitt et viktig industrielt metall, og ligger på tredje plass etter jern og aluminium når det gjelder mengder som forbrukes. Elektrisk bruk av kobber, inkludert kraftoverføring og -generering, bygningskabler, telekommunikasjon og elektriske og elektroniske produkter, utgjør omtrent tre fjerdedeler av den totale kobberbruken. Byggekonstruksjon er det største enkeltmarkedet, etterfulgt av elektronikk og elektroniske produkter, transport, industrielle maskiner og forbruker- og generelle produkter. Kobberbiprodukter fra produksjon og foreldede kobberprodukter resirkuleres lett og bidrar betydelig til kobberforsyningen.

Abonner for å motta et e-postvarsel når en publikasjon legges til på denne siden.


2 svar 2

Papirprøven er ment å etterligne papirfargen din når du skriver ut på farget papir. Det er som "ikke-utskriftsfarge" som i den resulterende bakgrunnen er veldig gjennomsiktig.

I eksempelbildet ditt er den "hvite bakgrunnen" bare bakgrunnsfargen til akrobat.

For å lage bakgrunnsfarge for dokumentet, vil jeg anbefale mastersider.

Fra toppmenyen: Window & gt Pages Øverst i dette panelet (som standard) vil du ha Masters og sidene vises nederst.

Flere instruksjoner nederst

Lag en ny masterside (eller bruk A-masteren),

Fyll mastersiden med rektangelverktøyet (sørg for at du også får blødningsområdene.)

Her er et eksempel på et bilde der jeg har satt blått rektangel sammen med rødt til en masterside. Som du kan se fra bildet, gjentas dette gjennom alle sidene mine.

Dette fungerer som bakgrunn for sidene du setter denne mastersiden til. (Det kan være lurt å tenke på mastersider som om de var låste lag som alltid er nederst, og du kan enkelt tildele dem til bestemte sider).

Du kan ikke ordne noe under elementene på en masterside, med mindre du selvfølgelig er på mastersiden.

Ingen av markeringsverktøyene vil reagere på elementene på mastersiden hvis du er i sidevisningen.

Hovedsider er bra for elementer som er statiske, som hvis du har en overskrift som gjentas gjennom alle sidene, ville dette være veien å gå. Det røde rektangelet i eksemplet mitt eksisterer for å vise at du kan legge mer enn bare en bakgrunnsfarge der inne.

Nederst på sidepanelet mitt står det 1 Master, og jeg har også valgt "A-master", disse to tingene indikerer at jeg er i Master-sidevisning for øyeblikket.

Bokstaven A øverst på sideminiatyrene i eksempelbildet mitt indikerer at jeg har hovedside A satt til alle sidene.

Bytter mellom sidevisning og hovedsidesvisning

Du kan dobbeltklikke på hovedminiatyrbildet, og det samme gjelder sideminiatyrene. Du får vist en tydelig indikasjon på valg når en bestemt side er valgt (enkelt klikk velger bare en side).

Å lage en ny masterside.

Dra hovedsiden fra miniatyrbildet til ikonet Ny side eller høyreklikk hovedsiden og velg Dupliser hovedside ..

Sette en hovedside til sider.

Du kan gjøre dette ganske enkelt ved å dra et miniatyrbilde av hovedsiden til et miniatyrbilde av siden.

Hvis du vil stille hovedsiden til flere sider samtidig, velger du sidene du vil ha, og høyreklikker på en av dem og velger Bruk master på sider.


Se videoen: ArcMap Tips - PDF export (September 2021).