ähhm
---->
[autoit]#NoTrayIcon
[/autoit]------> *blub*
ähhm
---->
[autoit]#NoTrayIcon
[/autoit]------> *blub*
Okeeee, das mit den PDFs ist ein bisschen sehr krass o_O
Ich habs in verschiedenen Sprachen gemacht die die Libaries schon drin haben:
PHP
VB.NET
Itext (java)
Fazit: mit einer vorhandenen Libary eig. alles kein Problem, ohne Libary SEEEEHR großes Problem, ausserdem scheinen die neueren Versionen eines PDF-Dokumentes verschlüsselt zu sein (also der text, nicht die formatierung)
Ich hab noch ein bisschen rumgesucht und im englischen Forum eine PrintUDF gefunden mit der man unter anderem direkt linien Zeichnen kann(also leider keine Tabellen, aber mit linien & quadraten etc. kommt man schon sehr weit)
;This is the script used to produce the graph in the example above.
#include 'printMGv2.au3';the print UDF
Global $hp
Local $mmssgg,$marginx,$marginy
$hp = _PrintDllStart($mmssgg);this must always be called first
if $hp = 0 then
consolewrite("Error from dllstart = " & $mmssgg & @CRLF)
Exit
endif
;choose the printer if you don't want the default printer
_PrintSetPrinter($hp);see also _PrinterSelectPrinter
_PrintPageOrientation($hp,0);set landscape printing
_PrintStartPrint($hp)
$pght = _PrintGetpageheight($hp) - _PrintGetYOffset($hp)
$pgwd = _PrintGetpageWidth($hp) - _PrintGetXOffset($hp)
$axisx = Round($pgwd * 0.8)
$axisy = Round($pght * 0.8)
_PrintSetFont($hp,'Arial',18,0,'bold,underline')
$Title = "Sales for 2006"
$tw = _PrintGetTextWidth($hp,$Title)
$th = _PrintGetTextHeight($hp,$title)
_PrintText($hp,$title,Int($pgwd/2 - $tw/2),_PrintGetYOffset($hp))
_PrintSetLineWid($hp,2)
_PrintSetLineCol($hp,0)
_printsetfont($hp,'Times New Roman',12,0,'')
$basey = 2*_PrintGetTextHeight($hp,"Jan")
$basex = $basey + 200
_PrintLine($hp,$basex,$pght - $basey,$axisx + $basex,$pght - $basey)
_PrintLine($hp,$basex,$pght - $basey,$basex,$pght-$basey-$axisy)
$xdiv = Int(($axisx - $basey)/12)
$ydiv = Int($axisy/10)
$months = StringSplit("Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sept|Oct|Nov|Dec",'|')
For $n = 1 To 12
_PrintText($hp,$months[$n],$basex + $n*$xdiv - Int(_printGetTextWidth($hp,$months[$n])/2),$pght-$basey + 5)
_PrintLine($hp,$Basex + $n*$xdiv,$pght - $basey - 10,$Basex + $n*$xdiv,$pght - $basey + 10)
Next
For $n = 1 To 10
_PrintText($hp,$n,$basex - _PrintGetTextWidth($hp,$n) - 20,$pght-$basey-$n*$ydiv-Int(_printGetTextHeight($hp,'10')/2))
_PrintLIne($hp,$basex - 5,$pght - $basey - $n*$ydiv,$basex + 5,$pght - $basey - $n*$ydiv)
Next
_PrintText($hp,"£ x 1000,000",$basex - 3 * _PrintGetTextHeight($hp,"£"),$pght - $basey - 100,90)
Dim $sales[13] = [0,20,25,20,18,10,17,20,10,80,90,100,100]
_PrintSetLineCol($hp,0x0000ff)
_PrintSetBrushCol($hp,0x55FF55)
For $n = 1 To 12
_PrintRectangle($hp,$Basex + $n*$xdiv -50,$pght - $basey - Int($sales[$n]*$ydiv/10), _
$Basex + $n*$xdiv +50,$pght - $basey - 0.2)
Next
$label = "I started work"
_PrintSetLineCol($hp,0)
_PrintLine($hp,Int($pgwd/2),2*$th + 125,$Basex + 8*$xdiv ,$pght - $basey - Int($sales[8]*$ydiv/10))
_Printsetlinecol($hp,0x0000ff)
_PrintSetLineWid($hp,10)
_PrintSetBrushCol($hp,0xbbccee)
_PrintEllipse($hp,Int($pgwd/2) - 200,2*$th,Int($pgwd/2) + 200,2*$th + 250)
;add an image in next line. can be bmp, jpg or ico file
;_PrintImage($hp,"screenshot004.bmp",Int($pgwd/2) - 150,2*$th+260,300,350)
_PrintText($hp,$label,Int($pgwd/2 - _PrintGetTextWidth($hp,$label)/2),2*$th + 125 - Int(_printGetTextHeight($hp,$label)/2))
[/autoit] [autoit][/autoit] [autoit]_PrintEndPrint($hp)
_PrintNewPage($hp);Not really needed if no more pages to be printed
_printDllClose($hp)
>>>PrintUDF: http://www.autoitscript.com/forum/index.php?showtopic=51054
So eine Libary (PDF) für AutoIt zu machen wäre sicherlich ein schönes Projekt und ich wäre gerne bereit da mitzumachen ![]()
Hat noch wer lust?
Also
1. TCPStartup
2. TCPListen -->Socket
3. TCPAccept -->auf verbindung warten
4. in einer schleife TCPRecv um ankommende daten zu lesen
Und dann z.b.
[autoit]While 1
$recv = TCPRecv($socket, 99999)
If $recv = "shutdownpc" THen Shutdown()
WEnd
ZitatJava mit iText ist meine grundsätzliche Empfehlung, damit kriegst du blitzsaubere PDFs raus.
Ob und wie iText sich allerdings aus AutoIt heraus ansteuern lässt, weiß ich nicht...peethebee
@pee du willst mich unbedingt noch zum Javajünger rekrutieren was?^^ Aber danke für den Vorschlag ich werds mir anschauen!
Schnuffel
Super script, ein guter start, jetzt muss ich nurnoch schauen wie ich sowas als tabelle hinbekomm, ein wenig spicken und dann bekomm ich es wohl raus ![]()
Genau das hatte ich noch vergessen, Seite muss im Querformat sein, aber bei schnuffels script ist das ja ehh einstellbar...
Sooo dann verschwinde ich mal ein paar Tage in meinem Loch und meld mich dann wieder wenn ich ein paar Ergebnisse vorzuweisen hab ![]()
#include <array.au3>
#include <inet.au3>
$string = _INetGetSource("www.autoit.de")
$return = StringRegExp($string, "<img(?:.*?)src=(?:""|')(.*?)(?:""|')", 3)
_ArrayDisplay($return)
Für die Bilder z.b. das hier
ok aber ich glaube kaum das man die plugins des FF hidden steuern kann
Also Bilder würde ich wie folgt holen: UNGETESTET!!! ich machs heute abend nochmal richtig!
[autoit]$string = '<img src="test1" />'
$return = StringRegExp($string, "^\<img(.*)src\=(\"|\')(.*?)(\"|\')$",1)
GUISetOnEvent($GUI_EVENT_CLOSE, "deineexitfunc")
Func deineexitfunc()
Exit
EndFunc
Hi,
jaaa ich hab auch mal wieder ein Problem.
Ich möchte eine Tabelle ausdrucken mit folgenden Anforderungen:
1. Seitenumbruch an bestimmten Stellen (nach 20 Zeilen) <<wichtig!
2. Bei jeder neuen Seite den Tabellenheader erneut einfügen <<wichtig!
3. Ein Logo auf der ersten Seite rechts oben
4. Eine Überschrift auf der 1. Seite
5. Möglichst ohne fremdprogramme und im hintergrund (lediglich druckerauswahl soll erscheinen)
6. Möglichst ohne viel Performance zu rauben da der Laptop auf dem das ding läuft relativ alt ist
Im moment habe ich es per HTML gelöst, ist allerdings nicht perfekt, AutoIt schreibt eine HTML datei und druckt diese dann über den FireFox aus. Manchmal gibt es Fehler die aber z.b. bei zul angen Inhalten in einer Zelle auftreten und so weiter. Also es ist wirklich nur provisorisch und ich suche ein geeigneteres Format, wie schwirig ist es z.b. direkt so etwas int PRT format oder PDF (etwas was auf jedem rechner und von jedem drucker gleich interpretiert wird) auszudrucken?
Hoffe ihr habt irgendeine Idee ![]()
schau mal im script bereich unter desktop radio ![]()
Dim $search[10]
$search[0] = "test1"
$search[1] = "test2"
;...
$found = false
For $i = 0 To Ubound($search) -1
If $search[$i] <> "" AND StringInStr($string, $search[$i]) Then
$found = true
ExitLoop
EndIf
Next
If $found == true Then MsgBox(0, "", "found")
naja... is auch net besser aber immerhin, wenn du es unbedingt ohne regulärem ausdruck machen willst
#include <process.au3>
$winlist = WinList()
MsgBox(0, "", UBound($winlist)-1)
[/autoit] [autoit][/autoit] [autoit]For $i = 1 To UBound($winlist)-1
$pid = WinGetProcess($winlist[$i][0])
$name = _ProcessGetName($pid)
MsgBox(0, "", $winlist[$i][0]&"-->"&$name)
Next
Case GUIGetMsg() = $button
FileWriteLine($file, @mday&"."&@mon&"."&@year&" "&@Hour&":"&@min&":"&@sec)
Hmm vllt gibts noch ne bessere Lösung aber die hier geht auch:
#include <GuiEdit.au3>
#include <GuiStatusBar.au3>
#include <GuiConstantsEx.au3>
#include <WindowsConstants.au3>
Opt("GUIOnEventMode", 1)
[/autoit] [autoit][/autoit] [autoit]$gui = GUICreate("Test", 300, 400)
$label = GUICtrlCreateLabel("Aktuelle Position:", 0, 0, 300)
$edit = GUICtrlCreateEdit("", 0, 20, 300, 380)
GUISetState()
[/autoit] [autoit][/autoit] [autoit]GUISetOnEvent($GUI_EVENT_CLOSE, "_exit")
[/autoit] [autoit][/autoit] [autoit]While 1
$array = _GUICtrlEdit_GetSel($edit)
$text = GUICtrlRead($edit)
$text = StringLeft($text, $array[0])
$split = StringSplit($text, @LF)
GUICtrlSetData($label, "Aktuelle Position des Zeigers: "&$array[0]&"-"&$array[1]&" Zeile: "&UBound($split)-1)
Sleep(100)
WEnd
Func _exit()
Exit
EndFunc
//EDIT: OK es gibt noch eine bessere Lösung THX eukalyptus ![]()
mhh ich fürchte das geht so leicht nicht denn soweit ich weiss wartet autoit bis eine datei kopiert oder verschoben wurde und erst dann macht es mit dem code weiter...
also am besten per run und cmd verschieben oder so... (oder hat jmd. ne bessere lösung?)
#include <file.au3>
#include <array.au3>
MsgBox(0, "", _checkNewest(@ScriptDir))
[/autoit] [autoit][/autoit] [autoit]Func _checkNewest($path, $filter = "*")
$files = _FileListToArray($path, $filter, 1)
Dim $filesizes[UBound($files)][3]
For $i = 1 To UBound($files)-1
$filesizes[$i][0] = $files[$i]
$filesizes[$i][1] = FileGetTime($files[$i], 0, 1)
$filesizes[$i][2] = $path&"\"&$files[$i]
Next
_ArrayDelete($filesizes, 0)
_ArraySort($filesizes, 1, 0, 0, 1)
Return $filesizes[0][2]
EndFunc
Wobei ich dir empfehlen würde das komplette array aus der funktion zurückzugeben falls du mal dein script erweitern willst und evt. wissen willst welches die älteste datei oder so ist, also besser so:
#include <file.au3>
#include <array.au3>
$test = _checkNewest(@ScriptDir)
MsgBox(0, "", $test[0][2])
Func _checkNewest($path, $filter = "*")
$files = _FileListToArray($path, $filter, 1)
Dim $filesizes[UBound($files)][3]
For $i = 1 To UBound($files)-1
$filesizes[$i][0] = $files[$i]
$filesizes[$i][1] = FileGetTime($files[$i], 0, 1)
$filesizes[$i][2] = $path&"\"&$files[$i]
Next
_ArrayDelete($filesizes, 0)
_ArraySort($filesizes, 1, 0, 0, 1)
Return $filesizes
EndFunc
Hups... naja dann halt so^^
#include <file.au3>
#include <array.au3>
$files = _FileListToArray(@ScriptDir, "*", 1)
Dim $filesizes[UBound($files)][2]
For $i = 1 To UBound($files)-1
$filesizes[$i][0] = $files[$i]
$filesizes[$i][1] = FileGetTime($files[$i], 0, 1)
Next
_ArrayDelete($filesizes, 0)
_ArrayDisplay($filesizes, "unsortiert")
_ArraySort($filesizes, 1, 0, 0, 1)
_ArrayDisplay($filesizes, "nach größe sortiert, erste element ist das neueste")
#include <file.au3>
#include <array.au3>
$files = _FileListToArray(@ScriptDir, "*", 1)
Dim $filesizes[UBound($files)][2]
For $i = 1 To UBound($files)-1
$filesizes[$i][0] = $files[$i]
$filesizes[$i][1] = FileGetSize($files[$i])
Next
_ArrayDelete($filesizes, 0)
_ArrayDisplay($filesizes)
_ArraySort($filesizes, 1, 0, 0, 1)
_ArrayDisplay($filesizes)
1. wie willst du es denn haben?
2. denke ich das das problem daran liegt das die ganze exel aktion innerhalb der schleife liegt (objcreate etc)
3. halte ich es für unnötig die rückgabe der ini nochmal in 2 extra arrays aufzuteilen (man kann doch einfach $read[$index][0] ;schlüssel $read[$index][1] ;kunde
joar jetzt noch das bild anhängen damit wir das als fehlerquelle ausschließen können...
funkey
können jpegs überhaupt transparent sein o_O... ich dachte das geht nur mit GIF & PNG?