Skip to content

Commit

Permalink
Merge branch 'dev'
Browse files Browse the repository at this point in the history
  • Loading branch information
kevin2li committed Jul 17, 2023
2 parents c91333c + a76ceca commit 9a17e62
Show file tree
Hide file tree
Showing 29 changed files with 1,540 additions and 203 deletions.
44 changes: 40 additions & 4 deletions app.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ import (
"github.com/pdfcpu/pdfcpu/pkg/api"
"github.com/pdfcpu/pdfcpu/pkg/pdfcpu/model"
"github.com/pkg/errors"
wails_runtime "github.com/wailsapp/wails/v2/pkg/runtime"
)

// App struct
Expand Down Expand Up @@ -50,6 +51,36 @@ type CmdOutput struct {
Message string `json:"message"`
}

func (a *App) SelectFile() string {
d, err := wails_runtime.OpenFileDialog(a.ctx, wails_runtime.OpenDialogOptions{})
if err != nil {
logger.Errorln(err)
return ""
}
logger.Debugf("%v\n", d)
return d
}

func (a *App) SelectMultipleFiles() []string {
d, err := wails_runtime.OpenMultipleFilesDialog(a.ctx, wails_runtime.OpenDialogOptions{})
if err != nil {
logger.Errorln(err)
return nil
}
logger.Debugf("%v\n", d)
return d
}

func (a *App) SelectDir() string {
d, err := wails_runtime.OpenDirectoryDialog(a.ctx, wails_runtime.OpenDialogOptions{})
if err != nil {
logger.Errorln(err)
return ""
}
logger.Debugf("%v\n", d)
return d
}

func (a *App) SaveConfig(pdfPath string, pythonPath string, tesseractPath string, pandocPath string, hashcatPath string) error {
var config MyConfig
config.PdfPath = pdfPath
Expand Down Expand Up @@ -161,6 +192,11 @@ func CheckCmdError(cmd *exec.Cmd) error {
}

func GetCmdStatusAndMessage(cmd *exec.Cmd) error {
defer func() {
if err := recover(); err != nil {
logger.Fatalln(err)
}
}()
if runtime.GOOS == "windows" {
cmd.SysProcAttr = &syscall.SysProcAttr{HideWindow: true}
}
Expand Down Expand Up @@ -825,10 +861,10 @@ func (a *App) OCR(inFile string, outFile string, pages string, lang string, doub
logger.Errorln(err)
return err
}
// path := filepath.Join(tmpDir, "ocr.py")
path, err := os.Executable()
if err != nil {
err = errors.Wrap(err, "")
logger.Errorln("Error:", err)
logger.Errorln(err)
return err
}
path = filepath.Join(filepath.Dir(path), "ocr.py")
Expand Down Expand Up @@ -856,10 +892,10 @@ func (a *App) OCRPDFBookmark(inFile string, outFile string, pages string, lang s
logger.Errorln(err)
return err
}
// path := filepath.Join(tmpDir, "ocr.py")
path, err := os.Executable()
if err != nil {
err = errors.Wrap(err, "")
logger.Errorln("Error:", err)
logger.Errorln(err)
return err
}
path = filepath.Join(filepath.Dir(path), "ocr.py")
Expand Down
47 changes: 33 additions & 14 deletions app_unix.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ import (
"github.com/pdfcpu/pdfcpu/pkg/api"
"github.com/pdfcpu/pdfcpu/pkg/pdfcpu/model"
"github.com/pkg/errors"
wails_runtime "github.com/wailsapp/wails/v2/pkg/runtime"
)

// App struct
Expand Down Expand Up @@ -49,6 +50,36 @@ type CmdOutput struct {
Message string `json:"message"`
}

func (a *App) SelectFile() string {
d, err := wails_runtime.OpenFileDialog(a.ctx, wails_runtime.OpenDialogOptions{})
if err != nil {
logger.Errorln(err)
return ""
}
logger.Debugf("%v\n", d)
return d
}

func (a *App) SelectMultipleFiles() []string {
d, err := wails_runtime.OpenMultipleFilesDialog(a.ctx, wails_runtime.OpenDialogOptions{})
if err != nil {
logger.Errorln(err)
return nil
}
logger.Debugf("%v\n", d)
return d
}

func (a *App) SelectDir() string {
d, err := wails_runtime.OpenDirectoryDialog(a.ctx, wails_runtime.OpenDialogOptions{})
if err != nil {
logger.Errorln(err)
return ""
}
logger.Debugf("%v\n", d)
return d
}

func (a *App) SaveConfig(pdfPath string, pythonPath string, tesseractPath string, pandocPath string, hashcatPath string) error {
var config MyConfig
config.PdfPath = pdfPath
Expand Down Expand Up @@ -821,13 +852,7 @@ func (a *App) OCR(inFile string, outFile string, pages string, lang string, doub
logger.Errorln(err)
return err
}
path, err := os.Executable()
if err != nil {
err = errors.Wrap(err, "")
logger.Errorln("Error:", err)
return err
}
path = filepath.Join(filepath.Dir(path), "ocr.py")
path := filepath.Join(tmpDir, "ocr.py")
args := []string{path, "ocr"}
if lang != "" {
args = append(args, "--lang", lang)
Expand All @@ -852,13 +877,7 @@ func (a *App) OCRPDFBookmark(inFile string, outFile string, pages string, lang s
logger.Errorln(err)
return err
}
path, err := os.Executable()
if err != nil {
err = errors.Wrap(err, "")
logger.Errorln("Error:", err)
return err
}
path = filepath.Join(filepath.Dir(path), "ocr.py")
path := filepath.Join(tmpDir, "ocr.py")
args := []string{path, "bookmark"}
if lang != "" {
args = append(args, "--lang", lang)
Expand Down
67 changes: 60 additions & 7 deletions frontend/src/components/Forms/BackgroundForm.vue
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@
allow-clear />
<a
:style="{ background: formState.color, border: '1px solid black', marginLeft: '20px' }">&nbsp;&nbsp;&nbsp;&nbsp;</a>

</a-form-item>
<a-form-item name="image_path" label="图片" v-if="formState.op === 'image'" hasFeedback
:validateStatus="validateStatus.image_path" :help="validateHelp.image_path">
Expand Down Expand Up @@ -61,12 +60,35 @@
label="页码范围">
<a-input v-model:value="formState.page" placeholder="应用的页码范围(留空表示全部), e.g. 1-10" allow-clear />
</a-form-item>
<a-form-item name="input" label="输入" hasFeedback :validateStatus="validateStatus.input"
:help="validateHelp.input">
<a-input v-model:value="formState.input" placeholder="输入文件路径" allow-clear />
<a-form-item name="input" label="输入" :validateStatus="validateStatus.input" :help="validateHelp.input">
<div>
<a-row>
<a-col :span="22">
<a-input v-model:value="formState.input" placeholder="输入文件路径" allow-clear />
</a-col>
<a-col :span="1" style="margin-left: 1vw;">
<a-tooltip>
<template #title>选择文件</template>
<a-button @click="selectFile('input')"><ellipsis-outlined /></a-button>
</a-tooltip>
</a-col>
</a-row>
</div>
</a-form-item>
<a-form-item name="output" label="输出">
<a-input v-model:value="formState.output" placeholder="输出目录(留空则保存到输入文件同级目录)" allow-clear />
<div>
<a-row>
<a-col :span="22">
<a-input v-model:value="formState.output" placeholder="输出目录(留空则保存到输入文件同级目录)" allow-clear />
</a-col>
<a-col :span="1" style="margin-left: 1vw;">
<a-tooltip>
<template #title>选择文件</template>
<a-button @click="selectFile('output')"><ellipsis-outlined /></a-button>
</a-tooltip>
</a-col>
</a-row>
</div>
</a-form-item>
<a-form-item :wrapperCol="{ offset: 4 }" style="margin-bottom: 10px;">
<a-button type="primary" html-type="submit" :loading="confirmLoading">确认</a-button>
Expand All @@ -78,13 +100,21 @@
<script lang="ts">
import { defineComponent, reactive, watch, ref } from 'vue';
import { message, Modal } from 'ant-design-vue';
import { CheckFileExists, CheckRangeFormat, AddPDFBackgroundByColor, AddPDFBackgroundByImage } from '../../../wailsjs/go/main/App';
import {
SelectFile,
CheckFileExists,
CheckRangeFormat,
AddPDFBackgroundByColor,
AddPDFBackgroundByImage
} from '../../../wailsjs/go/main/App';
import type { FormInstance } from 'ant-design-vue';
import type { Rule } from 'ant-design-vue/es/form';
import { EllipsisOutlined } from '@ant-design/icons-vue';
import type { BackgroundState } from "../data";
import { handleOps } from "../data";
export default defineComponent({
components: {
EllipsisOutlined
},
setup() {
const formRef = ref<FormInstance>();
Expand Down Expand Up @@ -276,7 +306,30 @@ export default defineComponent({
await submit();
}
}
return { formState, rules, formRef, validateStatus, validateHelp, confirmLoading, resetFields, onFinish, onFinishFailed };
const selectFile = async (field: string) => {
await SelectFile().then((res: string) => {
console.log({ res });
if (res) {
Object.assign(formState, { [field]: res });
}
formRef.value?.validateFields(field);
}).catch((err: any) => {
console.log({ err });
});
}
return {
selectFile,
formState,
rules,
formRef,
validateStatus,
validateHelp,
confirmLoading,
resetFields,
onFinish,
onFinishFailed
};
}
})
</script>
70 changes: 61 additions & 9 deletions frontend/src/components/Forms/BookmarkForm.vue
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@
<a-input-number v-model:value="formState.write_gap" />
</a-form-item>
<a-form-item name="start_number" label="起始编号" v-if="formState.write_type == 'page'">
<a-input-number v-model:value="formState.start_number"/>
<a-input-number v-model:value="formState.start_number" />
</a-form-item>
<a-form-item name="bookmark.write_format" label="命名格式" v-if="formState.write_type == 'page'">
<a-input v-model:value="formState.write_format" placeholder="e.g. 第%p页(%p表示页码)" allow-clear />
Expand Down Expand Up @@ -140,18 +140,54 @@
:help="validateHelp.page">
<a-input v-model:value="formState.page" placeholder="e.g. 3-N" allow-clear />
</a-form-item>
<a-form-item name="input" label="输入" hasFeedback :validateStatus="validateStatus.input"
:help="validateHelp.input">
<a-input v-model:value="formState.input" placeholder="含有使用矩形注释标注标题层级的输入文件路径" allow-clear />
<a-form-item name="input" label="输入" :validateStatus="validateStatus.input" :help="validateHelp.input">
<div>
<a-row>
<a-col :span="22">
<a-input v-model:value="formState.input" placeholder="含有使用矩形注释标注标题层级的输入文件路径"
allow-clear />
</a-col>
<a-col :span="1" style="margin-left: 1vw;">
<a-tooltip>
<template #title>选择文件</template>
<a-button @click="selectFile('input')"><ellipsis-outlined /></a-button>
</a-tooltip>
</a-col>
</a-row>
</div>
</a-form-item>
</div>
</div>
<a-form-item name="input" label="输入" hasFeedback :validateStatus="validateStatus.input"
:help="validateHelp.input" v-if="!(formState.op === 'recognize' && formState.recognize_type === 'font')">
<a-input v-model:value="formState.input" placeholder="输入文件路径" allow-clear />
<a-form-item name="input" label="输入" :validateStatus="validateStatus.input" :help="validateHelp.input"
v-if="!(formState.op === 'recognize' && formState.recognize_type === 'font')">
<div>
<a-row>
<a-col :span="22">
<a-input v-model:value="formState.input" placeholder="输入文件路径" allow-clear />
</a-col>
<a-col :span="1" style="margin-left: 1vw;">
<a-tooltip>
<template #title>选择文件</template>
<a-button @click="selectFile('input')"><ellipsis-outlined /></a-button>
</a-tooltip>
</a-col>
</a-row>
</div>
</a-form-item>
<a-form-item name="output" label="输出">
<a-input v-model:value="formState.output" placeholder="输出目录(留空则保存到输入文件同级目录)" allow-clear />
<div>
<a-row>
<a-col :span="22">
<a-input v-model:value="formState.output" placeholder="输出目录(留空则保存到输入文件同级目录)" allow-clear />
</a-col>
<a-col :span="1" style="margin-left: 1vw;">
<a-tooltip>
<template #title>选择文件</template>
<a-button @click="selectFile('output')"><ellipsis-outlined /></a-button>
</a-tooltip>
</a-col>
</a-row>
</div>
</a-form-item>
<a-form-item :wrapperCol="{ offset: 4 }" style="margin-bottom: 10px;">
<a-button type="primary" html-type="submit" :loading="confirmLoading">确认</a-button>
Expand All @@ -166,7 +202,9 @@
<script lang="ts">
import { defineComponent, reactive, watch, ref } from 'vue';
import { message, Modal } from 'ant-design-vue';
import {
SelectFile,
CheckFileExists,
CheckRangeFormat,
ExtractBookmark,
Expand All @@ -178,7 +216,7 @@ import {
} from '../../../wailsjs/go/main/App';
import type { FormInstance } from 'ant-design-vue';
import type { Rule } from 'ant-design-vue/es/form';
import { MinusCircleOutlined, PlusOutlined } from '@ant-design/icons-vue';
import { MinusCircleOutlined, PlusOutlined, EllipsisOutlined } from '@ant-design/icons-vue';
import type { BookmarkState } from "../data";
import { handleOps } from "../data";
Expand All @@ -192,6 +230,7 @@ export default defineComponent({
components: {
MinusCircleOutlined,
PlusOutlined,
EllipsisOutlined
},
setup() {
const formRef = ref<FormInstance>();
Expand Down Expand Up @@ -387,7 +426,20 @@ export default defineComponent({
await submit();
}
}
const selectFile = async (field: string) => {
await SelectFile().then((res: string) => {
console.log({ res });
if (res) {
Object.assign(formState, { [field]: res });
}
formRef.value?.validateFields(field);
}).catch((err: any) => {
console.log({ err });
});
}
return {
selectFile,
formState,
rules,
formRef,
Expand Down

0 comments on commit 9a17e62

Please sign in to comment.