Skip to content

Commit 559fc0a

Browse files
committed
Added start and end parameters to OCR.FromPDF
1 parent d68ae94 commit 559fc0a

1 file changed

Lines changed: 13 additions & 9 deletions

File tree

Lib/OCR.ahk

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
* OCR.FromWindow(WinTitle?, lang?, transform:=1, onlyClientArea:=0, mode:=4)
1212
* OCR.FromFile(FileName, lang?, transform:=1)
1313
* OCR.FromBitmap(bitmap, lang?, transform:=1, hDC?)
14-
* OCR.FromPDF(FileName, lang?, transform:=1) => returns an array of results for each PDF page
14+
* OCR.FromPDF(FileName, lang?, transform:=1, start:=1, end?) => returns an array of results for each PDF page
1515
* OCR.FromPDFPage(FileName, page:=1, lang?, transform:=1)
1616
*
1717
* Note: the first parameter of the OCR initiation methods may be an object mimicking named parameters.
@@ -729,11 +729,13 @@ class OCR {
729729
* @param FileName Either full or relative (to A_WorkingDir) path to the file.
730730
* @param lang OCR language. Default is first from available languages.
731731
* @param transform Either a scale factor number, or an object {scale:Float, grayscale:Boolean, invertcolors:Boolean, rotate: 0 | 90 | 180 | 270, flip: 0 | "x" | "y"}
732+
* @param start Page number to start from. Default is first page.
733+
* @param end Page number to end with (included). Default is last page.
732734
* @returns {OCR.OcrResult}
733735
*/
734-
static FromPDF(FileName, lang?, transform:=1) {
736+
static FromPDF(FileName, lang?, transform:=1, start:=1, end?) {
735737
this.__ExtractTransformParameters(FileName, &transform)
736-
this.__ExtractNamedParameters(FileName, "lang", &lang, "FileName", &FileName)
738+
this.__ExtractNamedParameters(FileName, "lang", &lang, "start", &start, "end", &end, "FileName", &FileName)
737739
if !(fe := FileExist(FileName)) or InStr(fe, "D")
738740
throw TargetError("File `"" FileName "`" doesn't exist", -1)
739741

@@ -742,12 +744,14 @@ class OCR {
742744
ComCall(8, PdfDocumentStatics, "ptr", IRandomAccessStream, "ptr*", PdfDocument:=this.IBase()) ; LoadFromStreamAsync
743745
this.WaitForAsync(&PdfDocument)
744746
this.CloseIClosable(IRandomAccessStream)
745-
ComCall(7, PdfDocument, "uint*", &count:=0) ; GetPageCount
746-
if !count
747-
throw Error("Unable to get PDF page count", -1)
748-
results := []
749-
Loop count
750-
results.Push(this.FromPDFPage(PdfDocument, A_Index, lang?, transform))
747+
if !IsSet(end) {
748+
ComCall(7, PdfDocument, "uint*", &end:=0) ; GetPageCount
749+
if !end
750+
throw Error("Unable to get PDF page count", -1)
751+
}
752+
local results := []
753+
Loop (end+1-start)
754+
results.Push(this.FromPDFPage(PdfDocument, start+(A_Index-1), lang?, transform))
751755
return results
752756
}
753757

0 commit comments

Comments
 (0)