Composables

usePdfKitSearch

Pencarian teks dengan penyorotan.

Menyediakan fungsionalitas pencarian teks lengkap dengan penyorotan hasil.

Penggunaan

const {
  searchQuery,
  matches,
  currentMatchIndex,
  currentMatch,
  totalMatches,
  hasMatches,
  isSearching,
  searchOptions,
  search,
  nextMatch,
  prevMatch,
  clearSearch,
  toggleCaseSensitive,
  toggleWholeWords,
} = usePdfKitSearch()

Nilai yang Dikembalikan

PropertiTipeDeskripsi
searchQueryRef<string>Kata kunci pencarian saat ini
matchesRef<SearchMatch[]>Array hasil pencarian
currentMatchIndexRef<number>Indeks hasil saat ini (-1 jika tidak ada)
currentMatchComputedRef<SearchMatch | null>Objek hasil saat ini
totalMatchesComputedRef<number>Total jumlah hasil
hasMatchesComputedRef<boolean>Apakah ada hasil
isSearchingRef<boolean>Pencarian sedang berlangsung
searchOptionsRef<SearchOptions>Opsi pencarian saat ini
search(pdfDoc, query, options?) => Promise<void>Melakukan pencarian pada dokumen PDF
nextMatch() => voidKe hasil berikutnya
prevMatch() => voidKe hasil sebelumnya
clearSearch() => voidMenghapus hasil pencarian
toggleCaseSensitive() => voidMengaktifkan/menonaktifkan sensitivitas huruf
toggleWholeWords() => voidMengaktifkan/menonaktifkan pencarian kata utuh

Interface SearchMatch

interface SearchMatch {
  pageIndex: number
  matchIndex: number
  text: string
}

SearchOptions

OpsiTipeDefaultDeskripsi
caseSensitivebooleanfalseCocokkan huruf besar/kecil secara persis
wholeWordsbooleanfalseHanya cocokkan kata utuh

Contoh

<template>
  <div class="flex items-center gap-2">
    <UInput
      v-model="query"
      placeholder="Cari..."
      @keyup.enter="performSearch"
    />
    <span v-if="hasMatches">
      {{ currentMatchIndex + 1 }} / {{ totalMatches }}
    </span>
    <UButton @click="prevMatch">Sebelumnya</UButton>
    <UButton @click="nextMatch">Berikutnya</UButton>
    <UButton @click="clearSearch">Hapus</UButton>
  </div>
</template>

<script setup>
const query = ref('')

const {
  matches,
  currentMatchIndex,
  hasMatches,
  totalMatches,
  search,
  nextMatch,
  prevMatch,
  clearSearch,
} = usePdfKitSearch()

// Kamu butuh instance PDFDocumentProxy, misalnya dari usePdfKitDocument()
const { pdfDoc } = usePdfKitDocument()

async function performSearch() {
  await search(pdfDoc.value, query.value)
}
</script>
Fungsi search membutuhkan instance PDFDocumentProxy yang sudah dimuat sebagai argumen pertama. Gunakan bersama usePdfKitDocument untuk mendapatkan instance dokumen.
Copyright © 2026